Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
QuoteAdapterTest.php
Go to the documentation of this file.
1 <?php
7 
11 
15 class QuoteAdapterTest extends \PHPUnit\Framework\TestCase
16 {
18  protected $model;
19 
23  protected $quoteMock;
24 
29 
30  protected function setUp()
31  {
32  $this->quoteMock = $this->createMock(\Magento\Quote\Model\Quote::class);
33 
34  $this->addressAdapterFactoryMock =
35  $this->getMockBuilder(\Magento\Payment\Gateway\Data\Quote\AddressAdapterFactory::class)
36  ->setMethods(['create'])
37  ->disableOriginalConstructor()
38  ->getMock();
39 
40  $this->model = new QuoteAdapter($this->quoteMock, $this->addressAdapterFactoryMock);
41  }
42 
43  public function testGetCurrencyCode()
44  {
45  $expected = 'USD';
47  $currencyMock = $this->getMockBuilder(
48  \Magento\Quote\Api\Data\CurrencyInterface::class
49  )->getMockForAbstractClass();
50  $currencyMock->expects($this->once())->method('getBaseCurrencyCode')->willReturn($expected);
51  $this->quoteMock->expects($this->once())->method('getCurrency')->willReturn($currencyMock);
52  $this->assertEquals($expected, $this->model->getCurrencyCode());
53  }
54 
55  public function testGetOrderIncrementId()
56  {
57  $expected = '1';
58  $this->quoteMock->expects($this->once())->method('getReservedOrderId')->willReturn($expected);
59  $this->assertEquals($expected, $this->model->getOrderIncrementId());
60  }
61 
62  public function testGetCustomerId()
63  {
64  $expected = 1;
66  $customerMock = $this->getMockBuilder(
67  \Magento\Customer\Api\Data\CustomerInterface::class
68  )->getMockForAbstractClass();
69  $customerMock->expects($this->once())->method('getId')->willReturn($expected);
70  $this->quoteMock->expects($this->once())->method('getCustomer')->willReturn($customerMock);
71  $this->assertEquals($expected, $this->model->getCustomerId());
72  }
73 
74  public function testGetBillingAddressIsNull()
75  {
76  $this->quoteMock->expects($this->once())->method('getBillingAddress')->willReturn(null);
77 
78  $this->assertSame(null, $this->model->getBillingAddress());
79  }
80 
81  public function testGetBillingAddress()
82  {
84  $addressAdapterMock = $this->getMockBuilder(\Magento\Payment\Gateway\Data\AddressAdapterInterface::class)
85  ->getMockForAbstractClass();
87  $quoteAddressMock = $this->getMockBuilder(\Magento\Quote\Api\Data\AddressInterface::class)
88  ->getMockForAbstractClass();
89  $this->addressAdapterFactoryMock->expects($this->once())
90  ->method('create')
91  ->with(['address' => $quoteAddressMock])
92  ->willReturn($addressAdapterMock);
93  $this->quoteMock->expects($this->exactly(2))->method('getBillingAddress')->willReturn($quoteAddressMock);
94 
95  $this->assertSame($addressAdapterMock, $this->model->getBillingAddress());
96  }
97 
98  public function testGetShippingAddressIsNull()
99  {
100  $this->quoteMock->expects($this->once())->method('getShippingAddress')->willReturn(null);
101 
102  $this->assertSame(null, $this->model->getShippingAddress());
103  }
104 
105  public function testGetShippingAddress()
106  {
108  $addressAdapterMock = $this->getMockBuilder(\Magento\Payment\Gateway\Data\AddressAdapterInterface::class)
109  ->getMockForAbstractClass();
111  $quoteAddressMock = $this->getMockBuilder(\Magento\Quote\Api\Data\AddressInterface::class)
112  ->getMockForAbstractClass();
113  $this->addressAdapterFactoryMock->expects($this->once())
114  ->method('create')
115  ->with(['address' => $quoteAddressMock])
116  ->willReturn($addressAdapterMock);
117  $this->quoteMock->expects($this->exactly(2))->method('getShippingAddress')->willReturn($quoteAddressMock);
118 
119  $this->assertSame($addressAdapterMock, $this->model->getShippingAddress());
120  }
121 }