示例#1
0
 public function testAddProductItemPreparation()
 {
     $itemMock = $this->getMock('\\Magento\\Sales\\Model\\Quote\\Item', [], [], '', false);
     $expectedResult = $itemMock;
     $requestMock = $this->getMock('\\Magento\\Framework\\Object');
     $this->objectFactoryMock->expects($this->once())->method('create')->with($this->equalTo(['qty' => 1]))->will($this->returnValue($requestMock));
     $typeInstanceMock = $this->getMock('Magento\\Catalog\\Model\\Product\\Type\\Simple', ['prepareForCartAdvanced'], [], '', false);
     $productMock = $this->getMock('Magento\\Catalog\\Model\\Product', ['getParentProductId', 'setStickWithinParent', '__wakeup'], [], '', false);
     $collectionMock = $this->getMock('Magento\\Sales\\Model\\Resource\\Quote\\Item\\Collection', [], [], '', false);
     $itemMock->expects($this->any())->method('representProduct')->will($this->returnValue(true));
     $iterator = new \ArrayIterator([$itemMock]);
     $collectionMock->expects($this->any())->method('getIterator')->will($this->returnValue($iterator));
     $this->quoteItemCollectionFactoryMock->expects($this->once())->method('create')->will($this->returnValue($collectionMock));
     $typeInstanceMock->expects($this->once())->method('prepareForCartAdvanced')->will($this->returnValue([$productMock]));
     $this->productMock->expects($this->once())->method('getTypeInstance')->will($this->returnValue($typeInstanceMock));
     $result = $this->quote->addProduct($this->productMock, null);
     $this->assertEquals($expectedResult, $result);
 }