Skip to content

Commit f6c3516

Browse files
committed
Merge branch 'MAGETWO-64547' of github.com:magento-firedrakes/magento2ce into MAGETWO-64547
2 parents 3a99c94 + c02b1a5 commit f6c3516

File tree

2 files changed

+67
-51
lines changed

2 files changed

+67
-51
lines changed

app/code/Magento/Bundle/Test/Unit/Model/LinkManagementTest.php

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -406,9 +406,13 @@ public function testAddChildLinkedProductIsComposite()
406406
*/
407407
public function testAddChildProductAlreadyExistsInOption()
408408
{
409-
$productLink = $this->getMock(\Magento\Bundle\Api\Data\LinkInterface::class);
409+
$productLink = $this->getMockBuilder(\Magento\Bundle\Api\Data\LinkInterface::class)
410+
->setMethods(['getSku', 'getOptionId', 'getSelectionId'])
411+
->disableOriginalConstructor()
412+
->getMockForAbstractClass();
410413
$productLink->expects($this->any())->method('getSku')->will($this->returnValue('linked_product_sku'));
411414
$productLink->expects($this->any())->method('getOptionId')->will($this->returnValue(1));
415+
$productLink->expects($this->any())->method('getSelectionId')->will($this->returnValue(1));
412416

413417
$this->metadataMock->expects($this->once())->method('getLinkField')->willReturn($this->linkField);
414418
$productMock = $this->getMock(\Magento\Catalog\Model\Product::class, [], [], '', false);
@@ -458,8 +462,8 @@ public function testAddChildProductAlreadyExistsInOption()
458462
);
459463

460464
$selections = [
461-
['option_id' => 1, 'product_id' => 12],
462-
['option_id' => 1, 'product_id' => 13],
465+
['option_id' => 1, 'product_id' => 12, 'parent_product_id' => 'product_id'],
466+
['option_id' => 1, 'product_id' => 13, 'parent_product_id' => 'product_id'],
463467
];
464468
$bundle = $this->getMock(\Magento\Bundle\Model\ResourceModel\Bundle::class, [], [], '', false);
465469
$bundle->expects($this->once())->method('getSelectionsData')
@@ -474,9 +478,13 @@ public function testAddChildProductAlreadyExistsInOption()
474478
*/
475479
public function testAddChildCouldNotSave()
476480
{
477-
$productLink = $this->getMock(\Magento\Bundle\Api\Data\LinkInterface::class);
481+
$productLink = $this->getMockBuilder(\Magento\Bundle\Api\Data\LinkInterface::class)
482+
->setMethods(['getSku', 'getOptionId', 'getSelectionId'])
483+
->disableOriginalConstructor()
484+
->getMockForAbstractClass();
478485
$productLink->expects($this->any())->method('getSku')->will($this->returnValue('linked_product_sku'));
479486
$productLink->expects($this->any())->method('getOptionId')->will($this->returnValue(1));
487+
$productLink->expects($this->any())->method('getSelectionId')->will($this->returnValue(1));
480488

481489
$this->metadataMock->expects($this->once())->method('getLinkField')->willReturn($this->linkField);
482490
$productMock = $this->getMock(\Magento\Catalog\Model\Product::class, [], [], '', false);
@@ -545,9 +553,13 @@ function () {
545553

546554
public function testAddChild()
547555
{
548-
$productLink = $this->getMock(\Magento\Bundle\Api\Data\LinkInterface::class);
556+
$productLink = $this->getMockBuilder(\Magento\Bundle\Api\Data\LinkInterface::class)
557+
->setMethods(['getSku', 'getOptionId', 'getSelectionId'])
558+
->disableOriginalConstructor()
559+
->getMockForAbstractClass();
549560
$productLink->expects($this->any())->method('getSku')->will($this->returnValue('linked_product_sku'));
550561
$productLink->expects($this->any())->method('getOptionId')->will($this->returnValue(1));
562+
$productLink->expects($this->any())->method('getSelectionId')->will($this->returnValue(1));
551563

552564
$this->metadataMock->expects($this->once())->method('getLinkField')->willReturn($this->linkField);
553565
$productMock = $this->getMock(\Magento\Catalog\Model\Product::class, [], [], '', false);
@@ -623,7 +635,10 @@ public function testSaveChild()
623635
$parentProductId = 32;
624636
$bundleProductSku = 'bundleProductSku';
625637

626-
$productLink = $this->getMock(\Magento\Bundle\Api\Data\LinkInterface::class);
638+
$productLink = $this->getMockBuilder(\Magento\Bundle\Api\Data\LinkInterface::class)
639+
->setMethods(['getSku', 'getOptionId', 'getSelectionId'])
640+
->disableOriginalConstructor()
641+
->getMockForAbstractClass();
627642
$productLink->expects($this->any())->method('getSku')->will($this->returnValue('linked_product_sku'));
628643
$productLink->expects($this->any())->method('getId')->will($this->returnValue($id));
629644
$productLink->expects($this->any())->method('getOptionId')->will($this->returnValue($optionId));
@@ -633,6 +648,7 @@ public function testSaveChild()
633648
$productLink->expects($this->any())->method('getPrice')->will($this->returnValue($price));
634649
$productLink->expects($this->any())->method('getCanChangeQuantity')->will($this->returnValue($canChangeQuantity));
635650
$productLink->expects($this->any())->method('getIsDefault')->will($this->returnValue($isDefault));
651+
$productLink->expects($this->any())->method('getSelectionId')->will($this->returnValue($optionId));
636652

637653
$this->metadataMock->expects($this->once())->method('getLinkField')->willReturn($this->linkField);
638654
$productMock = $this->getMock(\Magento\Catalog\Model\Product::class, [], [], '', false);
@@ -707,9 +723,13 @@ public function testSaveChildFailedToSave()
707723
$id = 12;
708724
$linkProductId = 45;
709725
$parentProductId = 32;
710-
$productLink = $this->getMock(\Magento\Bundle\Api\Data\LinkInterface::class);
726+
$productLink = $this->getMockBuilder(\Magento\Bundle\Api\Data\LinkInterface::class)
727+
->setMethods(['getSku', 'getOptionId', 'getSelectionId'])
728+
->disableOriginalConstructor()
729+
->getMockForAbstractClass();
711730
$productLink->expects($this->any())->method('getSku')->will($this->returnValue('linked_product_sku'));
712731
$productLink->expects($this->any())->method('getId')->will($this->returnValue($id));
732+
$productLink->expects($this->any())->method('getSelectionId')->will($this->returnValue(1));
713733
$bundleProductSku = 'bundleProductSku';
714734

715735
$productMock = $this->getMock(\Magento\Catalog\Model\Product::class, [], [], '', false);

app/code/Magento/Bundle/Test/Unit/Model/OptionRepositoryTest.php

Lines changed: 40 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -313,14 +313,20 @@ public function testSaveExistingOption()
313313
$productMock = $this->getMock(\Magento\Catalog\Model\Product::class, [], [], '', false);
314314
$productMock->expects($this->once())->method('getData')->willReturn($productId);
315315
$productMock->expects($this->once())->method('getStoreId')->willReturn($storeId);
316+
$optionCollectionMock = $this->getMockBuilder(\Magento\Bundle\Model\ResourceModel\Option\Collection::class)
317+
->disableOriginalConstructor()
318+
->getMock();
319+
$this->typeMock->expects($this->once())
320+
->method('getOptionsCollection')
321+
->with($productMock)
322+
->willReturn($optionCollectionMock);
323+
$optionCollectionMock->expects($this->once())->method('setIdFilter')->with($optionId)->willReturnSelf();
324+
325+
$optionMock = $this->getMockBuilder(\Magento\Bundle\Model\Option::class)
326+
->disableOriginalConstructor()
327+
->getMock();
328+
$optionCollectionMock->expects($this->once())->method('getFirstItem')->willReturn($optionMock);
316329

317-
$optionMock = $this->getMock(
318-
\Magento\Bundle\Model\Option::class,
319-
['setStoreId', 'setParentId', 'getProductLinks', 'getOptionId', 'getResource'],
320-
[],
321-
'',
322-
false
323-
);
324330
$metadataMock = $this->getMock(
325331
\Magento\Framework\EntityManager\EntityMetadata::class,
326332
[],
@@ -329,7 +335,6 @@ public function testSaveExistingOption()
329335
false
330336
);
331337
$metadataMock->expects($this->once())->method('getLinkField')->willReturn('product_option');
332-
$optionMock->expects($this->once())->method('setParentId')->with($productId)->willReturnSelf();
333338

334339
$this->metadataPoolMock->expects($this->once())->method('getMetadata')
335340
->with(\Magento\Catalog\Api\Data\ProductInterface::class)
@@ -362,22 +367,19 @@ public function testSaveNewOption()
362367
$productMock->expects($this->once())->method('getStoreId')->willReturn($storeId);
363368
$productMock->expects($this->any())->method('getSku')->willReturn($productSku);
364369

365-
$optionMock = $this->getMock(
366-
\Magento\Bundle\Model\Option::class,
367-
[
368-
'setStoreId',
369-
'setParentId',
370-
'getProductLinks',
371-
'getOptionId',
372-
'setOptionId',
373-
'setDefaultTitle',
374-
'getTitle',
375-
'getResource'
376-
],
377-
[],
378-
'',
379-
false
380-
);
370+
$optionCollectionMock = $this->getMockBuilder(\Magento\Bundle\Model\ResourceModel\Option\Collection::class)
371+
->disableOriginalConstructor()
372+
->getMock();
373+
$this->typeMock->expects($this->once())
374+
->method('getOptionsCollection')
375+
->with($productMock)
376+
->willReturn($optionCollectionMock);
377+
$optionCollectionMock->expects($this->once())->method('setIdFilter')->with($optionId)->willReturnSelf();
378+
379+
$optionMock = $this->getMockBuilder(\Magento\Bundle\Model\Option::class)
380+
->disableOriginalConstructor()
381+
->getMock();
382+
$optionCollectionMock->expects($this->once())->method('getFirstItem')->willReturn($optionMock);
381383
$metadataMock = $this->getMock(
382384
\Magento\Framework\EntityManager\EntityMetadata::class,
383385
[],
@@ -386,7 +388,6 @@ public function testSaveNewOption()
386388
false
387389
);
388390
$metadataMock->expects($this->once())->method('getLinkField')->willReturn('product_option');
389-
$optionMock->expects($this->once())->method('setParentId')->with($productId)->willReturnSelf();
390391

391392
$this->metadataPoolMock->expects($this->once())->method('getMetadata')
392393
->with(\Magento\Catalog\Api\Data\ProductInterface::class)
@@ -426,22 +427,19 @@ public function testSaveCanNotSave()
426427
$productMock->expects($this->once())->method('getStoreId')->willReturn($storeId);
427428
$productMock->expects($this->any())->method('getSku')->willReturn($productSku);
428429

429-
$optionMock = $this->getMock(
430-
\Magento\Bundle\Model\Option::class,
431-
[
432-
'setStoreId',
433-
'setParentId',
434-
'getProductLinks',
435-
'getOptionId',
436-
'setOptionId',
437-
'setDefaultTitle',
438-
'getTitle',
439-
'getResource'
440-
],
441-
[],
442-
'',
443-
false
444-
);
430+
$optionCollectionMock = $this->getMockBuilder(\Magento\Bundle\Model\ResourceModel\Option\Collection::class)
431+
->disableOriginalConstructor()
432+
->getMock();
433+
$this->typeMock->expects($this->once())
434+
->method('getOptionsCollection')
435+
->with($productMock)
436+
->willReturn($optionCollectionMock);
437+
$optionCollectionMock->expects($this->once())->method('setIdFilter')->with($optionId)->willReturnSelf();
438+
439+
$optionMock = $this->getMockBuilder(\Magento\Bundle\Model\Option::class)
440+
->disableOriginalConstructor()
441+
->getMock();
442+
$optionCollectionMock->expects($this->once())->method('getFirstItem')->willReturn($optionMock);
445443
$metadataMock = $this->getMock(
446444
\Magento\Framework\EntityManager\EntityMetadata::class,
447445
[],
@@ -450,13 +448,11 @@ public function testSaveCanNotSave()
450448
false
451449
);
452450
$metadataMock->expects($this->once())->method('getLinkField')->willReturn('product_option');
453-
$optionMock->expects($this->once())->method('setParentId')->with($productId)->willReturnSelf();
454451

455452
$this->metadataPoolMock->expects($this->once())->method('getMetadata')
456453
->with(\Magento\Catalog\Api\Data\ProductInterface::class)
457454
->willReturn($metadataMock);
458-
$optionMock->method('getOptionId')
459-
->will($this->onConsecutiveCalls(null, null, $optionId, $optionId, $optionId));
455+
$optionMock->method('getOptionId')->willReturn($optionId);
460456

461457
$productLink1 = $this->getMock(\Magento\Bundle\Api\Data\LinkInterface::class);
462458
$productLink2 = $this->getMock(\Magento\Bundle\Api\Data\LinkInterface::class);

0 commit comments

Comments
 (0)