示例#1
0
 public function testCollectItemHasNoChildren()
 {
     $itemWithChildren = $this->getMockBuilder('Magento\\Sales\\Model\\Quote\\Item')->disableOriginalConstructor()->setMethods(['getNoDiscount', 'getParentItemId', 'getHasChildren', 'isChildrenCalculated', 'getChildren'])->getMock();
     $itemWithChildren->expects($this->once())->method('getNoDiscount')->willReturn(false);
     $itemWithChildren->expects($this->once())->method('getParentItemId')->willReturn(false);
     $itemWithChildren->expects($this->once())->method('getHasChildren')->willReturn(false);
     $this->validatorMock->expects($this->any())->method('sortItemsByPriority')->willReturnArgument(0);
     $storeMock = $this->getMockBuilder('Magento\\Store\\Model\\Store')->disableOriginalConstructor()->setMethods(['getStore'])->getMock();
     $this->storeManagerMock->expects($this->any())->method('getStore')->willReturn($storeMock);
     $quoteMock = $this->getMockBuilder('Magento\\Sales\\Model\\Quote')->disableOriginalConstructor()->getMock();
     $addressMock = $this->getMockBuilder('Magento\\Sales\\Model\\Quote\\Address')->disableOriginalConstructor()->setMethods(['getQuote', 'getAllNonNominalItems', 'getShippingAmount'])->getMock();
     $addressMock->expects($this->any())->method('getQuote')->willReturn($quoteMock);
     $addressMock->expects($this->any())->method('getAllNonNominalItems')->willReturn([$itemWithChildren]);
     $addressMock->expects($this->any())->method('getShippingAmount')->willReturn(true);
     $this->assertInstanceOf('Magento\\SalesRule\\Model\\Quote\\Discount', $this->discount->collect($addressMock));
 }