Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CartTotalManagementTest.php
Go to the documentation of this file.
1 <?php
8 
10 
11 class CartTotalManagementTest extends \PHPUnit\Framework\TestCase
12 {
16  protected $objectManager;
17 
21  protected $shippingMock;
22 
26  protected $paymentMock;
27 
31  protected $cartTotalMock;
32 
36  protected $model;
37 
38  protected function setUp()
39  {
40  $this->objectManager = new ObjectManager($this);
41  $this->shippingMock = $this->createMock(\Magento\Quote\Model\ShippingMethodManagement::class);
42  $this->paymentMock = $this->createMock(\Magento\Quote\Api\PaymentMethodManagementInterface::class);
43  $this->cartTotalMock = $this->createMock(\Magento\Quote\Api\CartTotalRepositoryInterface::class);
44  $this->model = $this->objectManager->getObject(
45  \Magento\Quote\Model\Cart\CartTotalManagement::class,
46  [
47  'shippingMethodManagement' => $this->shippingMock,
48  'paymentMethodManagement' => $this->paymentMock,
49  'cartTotalsRepository' => $this->cartTotalMock,
50  ]
51  );
52  }
53 
54  public function testCollectTotals()
55  {
56  $cartId = 123;
57  $shippingCarrierCode = 'careful_carrier';
58  $shippingMethodCode = 'drone_delivery';
59  $total = 3322.31;
60  $paymentDataMock = $this->createMock(\Magento\Quote\Api\Data\PaymentInterface::class);
61 
62  $this->shippingMock->expects($this->once())
63  ->method('set')
64  ->with($cartId, $shippingCarrierCode, $shippingMethodCode);
65  $this->paymentMock->expects($this->once())->method('set')->with($cartId, $paymentDataMock);
66  $this->cartTotalMock->expects($this->once())->method('get')->with($cartId)->willReturn($total);
67  $this->assertEquals(
68  $total,
69  $this->model->collectTotals($cartId, $paymentDataMock, $shippingCarrierCode, $shippingMethodCode)
70  );
71  }
72 
78  public function testCollectTotalsNoShipping($shippingCarrierCode, $shippingMethodCode)
79  {
80  $cartId = 123;
81  $total = 3322.31;
82  $paymentDataMock = $this->createMock(\Magento\Quote\Api\Data\PaymentInterface::class);
83 
84  $this->shippingMock->expects($this->never())
85  ->method('set')
86  ->with($cartId, $shippingCarrierCode, $shippingMethodCode);
87  $this->paymentMock->expects($this->once())->method('set')->with($cartId, $paymentDataMock);
88  $this->cartTotalMock->expects($this->once())->method('get')->with($cartId)->willReturn($total);
89  $this->assertEquals(
90  $total,
91  $this->model->collectTotals($cartId, $paymentDataMock, $shippingCarrierCode, $shippingMethodCode)
92  );
93  }
94 
98  public function collectTotalsShippingData()
99  {
100  return [
101  ['careful_carrier', null],
102  [null, 'drone_delivery'],
103  [null, null],
104  ];
105  }
106 }
$cartId
Definition: quote.php:22
testCollectTotalsNoShipping($shippingCarrierCode, $shippingMethodCode)