Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
PaymentDataObjectFactoryTest.php
Go to the documentation of this file.
1 <?php
7 
13 
17 class PaymentDataObjectFactoryTest extends \PHPUnit\Framework\TestCase
18 {
20  protected $model;
21 
25  protected $objectManagerMock;
26 
31 
36 
41 
42  protected function setUp()
43  {
44  $this->objectManagerMock = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class)
45  ->getMockForAbstractClass();
46 
47  $this->orderAdapterFactoryMock =
48  $this->getMockBuilder(\Magento\Payment\Gateway\Data\Order\OrderAdapterFactory::class)
49  ->setMethods(['create'])
50  ->disableOriginalConstructor()
51  ->getMock();
52 
53  $this->quoteAdapterFactoryMock =
54  $this->getMockBuilder(\Magento\Payment\Gateway\Data\Quote\QuoteAdapterFactory::class)
55  ->setMethods(['create'])
56  ->disableOriginalConstructor()
57  ->getMock();
58 
59  $this->paymentDataObjectMock =
60  $this->createMock(\Magento\Payment\Gateway\Data\PaymentDataObjectInterface::class);
61 
62  $this->model = new PaymentDataObjectFactory(
63  $this->objectManagerMock,
64  $this->orderAdapterFactoryMock,
65  $this->quoteAdapterFactoryMock
66  );
67  }
68 
69  public function testCreatePaymentDataObjectFromOrder()
70  {
72  $orderMock = $this->getMockBuilder(\Magento\Sales\Model\Order::class)
73  ->disableOriginalConstructor()
74  ->getMock();
75 
77  $orderAdapterMock = $this->getMockBuilder(\Magento\Payment\Gateway\Data\Order\OrderAdapter::class)
78  ->disableOriginalConstructor()
79  ->getMock();
80 
82  $paymentInfoMock = $this->getMockBuilder(\Magento\Sales\Model\Order\Payment::class)
83  ->disableOriginalConstructor()
84  ->getMock();
85 
86  $paymentInfoMock->expects($this->once())
87  ->method('getOrder')
88  ->willReturn($orderMock);
89 
90  $this->orderAdapterFactoryMock->expects($this->once())
91  ->method('create')
92  ->with(['order' => $orderMock])
93  ->willReturn($orderAdapterMock);
94 
95  $this->objectManagerMock->expects($this->once())
96  ->method('create')
97  ->with(
98  \Magento\Payment\Gateway\Data\PaymentDataObject::class,
99  [
100  'order' => $orderAdapterMock,
101  'payment' => $paymentInfoMock
102  ]
103  )->willReturn($this->paymentDataObjectMock);
104 
105  $this->assertSame($this->paymentDataObjectMock, $this->model->create($paymentInfoMock));
106  }
107 
108  public function testCreatePaymentDataObjectFromQuote()
109  {
111  $quoteMock = $this->getMockBuilder(\Magento\Quote\Model\Quote::class)
112  ->disableOriginalConstructor()
113  ->getMock();
114 
116  $quoteAdapterMock = $this->getMockBuilder(\Magento\Payment\Gateway\Data\Quote\QuoteAdapter::class)
117  ->disableOriginalConstructor()
118  ->getMock();
119 
121  $paymentInfoMock = $this->getMockBuilder(\Magento\Quote\Model\Quote\Payment::class)
122  ->disableOriginalConstructor()
123  ->getMock();
124 
125  $paymentInfoMock->expects($this->once())
126  ->method('getQuote')
127  ->willReturn($quoteMock);
128 
129  $this->quoteAdapterFactoryMock->expects($this->once())
130  ->method('create')
131  ->with(['quote' => $quoteMock])
132  ->willReturn($quoteAdapterMock);
133 
134  $this->objectManagerMock->expects($this->once())
135  ->method('create')
136  ->with(
137  \Magento\Payment\Gateway\Data\PaymentDataObject::class,
138  [
139  'order' => $quoteAdapterMock,
140  'payment' => $paymentInfoMock
141  ]
142  )->willReturn($this->paymentDataObjectMock);
143 
144  $this->assertSame($this->paymentDataObjectMock, $this->model->create($paymentInfoMock));
145  }
146 }