@@ -38,64 +38,90 @@ class ShipmentLoaderTest extends \PHPUnit_Framework_TestCase
38
38
*/
39
39
protected $ shipmentRepositoryMock ;
40
40
41
+ /**
42
+ * @var \Magento\Sales\Model\Order\ShipmentFactory|\PHPUnit_Framework_MockObject_MockObject
43
+ */
44
+ protected $ shipmentFactory ;
45
+
46
+ /**
47
+ * @var \PHPUnit_Framework_MockObject_MockObject
48
+ */
49
+ protected $ trackFactoryMock ;
50
+
51
+ /**
52
+ * @var \PHPUnit_Framework_MockObject_MockObject
53
+ */
54
+ protected $ orderRepository ;
55
+
41
56
/**
42
57
* @var ShipmentDocumentFactory|\PHPUnit_Framework_MockObject_MockObject
43
58
*/
44
- protected $ documentFactoryMock ;
59
+ private $ documentFactoryMock ;
45
60
46
61
/**
47
62
* @var ShipmentTrackCreationInterfaceFactory|\PHPUnit_Framework_MockObject_MockObject
48
63
*/
49
- protected $ trackFactoryMock ;
64
+ private $ shipmentTrackCreationFactoryMock ;
50
65
51
66
/**
52
67
* @var ShipmentItemCreationInterfaceFactory|\PHPUnit_Framework_MockObject_MockObject
53
68
*/
54
- private $ itemFactoryMock ;
69
+ private $ shipmentItemCreationFactoryMock ;
55
70
56
71
/**
57
- * @var \PHPUnit_Framework_MockObject_MockObject
72
+ * @var array
58
73
*/
59
- protected $ orderRepositoryMock ;
74
+ private $ data ;
60
75
61
76
/**
62
77
* @var \Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader
63
78
*/
64
79
protected $ loader ;
65
80
81
+ /**
82
+ * @inheritdoc
83
+ */
66
84
protected function setUp ()
67
85
{
68
86
$ this ->objectManagerMock = new ObjectManager ($ this );
69
- $ this ->shipmentRepositoryMock = $ this ->getMockBuilder (\ Magento \Sales \Model \Order \ShipmentRepository::class )
87
+ $ this ->shipmentRepositoryMock = $ this ->getMockBuilder (' Magento\Sales\Model\Order\ShipmentRepository ' )
70
88
->disableOriginalConstructor ()
71
89
->setMethods (['get ' ])
72
90
->getMock ();
73
- $ this ->registryMock = $ this ->getMockBuilder (\ Magento \Framework \Registry::class )
91
+ $ this ->registryMock = $ this ->getMockBuilder (' Magento\Framework\Registry ' )
74
92
->disableOriginalConstructor ()
75
93
->setMethods ([])
76
94
->getMock ();
77
- $ this ->trackFactoryMock = $ this ->getMockBuilder (ShipmentTrackCreationInterfaceFactory::class )
95
+ $ this ->shipmentFactory = $ this ->getMockBuilder (' Magento\Sales\Model\Order\ShipmentFactory ' )
78
96
->disableOriginalConstructor ()
79
97
->setMethods (['create ' ])
80
98
->getMock ();
81
- $ this ->messageManagerMock = $ this ->getMockBuilder (\ Magento \Framework \ Message \Manager::class )
99
+ $ this ->trackFactoryMock = $ this ->getMockBuilder (' Magento\Sales\Model\Order\Shipment\TrackFactory ' )
82
100
->disableOriginalConstructor ()
83
- ->setMethods ([])
101
+ ->setMethods ([' create ' ])
84
102
->getMock ();
85
- $ this ->orderRepositoryMock = $ this ->getMockBuilder (\ Magento \Sales \ Api \OrderRepositoryInterface::class )
103
+ $ this ->messageManagerMock = $ this ->getMockBuilder (' Magento\Framework\Message\Manager ' )
86
104
->disableOriginalConstructor ()
87
105
->setMethods ([])
88
106
->getMock ();
89
- $ this ->itemFactoryMock = $ this ->getMockBuilder (ShipmentItemCreationInterfaceFactory::class )
107
+ $ this ->orderRepository = $ this ->getMockBuilder (' Magento\Sales\Api\OrderRepositoryInterface ' )
90
108
->disableOriginalConstructor ()
91
- ->setMethods ([' create ' ])
109
+ ->setMethods ([])
92
110
->getMock ();
93
111
$ this ->documentFactoryMock = $ this ->getMockBuilder (ShipmentDocumentFactory::class)
94
112
->disableOriginalConstructor ()
95
113
->setMethods ([])
96
114
->getMock ();
115
+ $ this ->shipmentTrackCreationFactoryMock = $ this ->getMockBuilder (ShipmentTrackCreationInterfaceFactory::class)
116
+ ->disableOriginalConstructor ()
117
+ ->setMethods (['create ' ])
118
+ ->getMock ();
119
+ $ this ->shipmentItemCreationFactoryMock = $ this ->getMockBuilder (ShipmentItemCreationInterfaceFactory::class)
120
+ ->disableOriginalConstructor ()
121
+ ->setMethods (['create ' ])
122
+ ->getMock ();
97
123
98
- $ data = [
124
+ $ this -> data = [
99
125
'order_id ' => 100032 ,
100
126
'shipment_id ' => 1000065 ,
101
127
'shipment ' => ['items ' => [1 => 1 , 2 => 2 ]],
@@ -111,18 +137,20 @@ protected function setUp()
111
137
'messageManager ' => $ this ->messageManagerMock ,
112
138
'registry ' => $ this ->registryMock ,
113
139
'shipmentRepository ' => $ this ->shipmentRepositoryMock ,
114
- 'orderRepository ' => $ this ->orderRepositoryMock ,
115
- 'documentFactory ' => $ this ->documentFactoryMock ,
140
+ 'shipmentFactory ' => $ this ->shipmentFactory ,
116
141
'trackFactory ' => $ this ->trackFactoryMock ,
117
- 'itemFactory ' => $ this ->itemFactoryMock ,
118
- 'data ' => $ data
142
+ 'orderRepository ' => $ this ->orderRepository ,
143
+ 'data ' => $ this ->data ,
144
+ 'documentFactory ' => $ this ->documentFactoryMock ,
145
+ 'shipmentTrackCreationFactory ' => $ this ->shipmentTrackCreationFactoryMock ,
146
+ 'shipmentItemCreationFactory ' => $ this ->shipmentItemCreationFactoryMock ,
119
147
]
120
148
);
121
149
}
122
150
123
151
public function testLoadShipmentId ()
124
152
{
125
- $ shipmentModelMock = $ this ->getMockBuilder (\ Magento \Sales \Model \Order \Shipment::class )
153
+ $ shipmentModelMock = $ this ->getMockBuilder (' Magento\Sales\Model\Order\Shipment ' )
126
154
->disableOriginalConstructor ()
127
155
->setMethods ([])
128
156
->getMock ();
@@ -139,13 +167,14 @@ public function testLoadShipmentId()
139
167
public function testLoadOrderId ()
140
168
{
141
169
$ this ->loader ->unsetData ('shipment_id ' );
142
- $ orderMock = $ this ->getMockBuilder (\ Magento \Sales \Model \Order::class )
170
+ $ orderMock = $ this ->getMockBuilder (' Magento\Sales\Model\Order ' )
143
171
->disableOriginalConstructor ()
144
172
->setMethods (['getForcedShipmentWithInvoice ' , 'getId ' , 'canShip ' ])
145
173
->getMock ();
146
- $ this ->orderRepositoryMock ->expects ($ this ->once ())
174
+ $ this ->orderRepository ->expects ($ this ->once ())
147
175
->method ('get ' )
148
176
->will ($ this ->returnValue ($ orderMock ));
177
+
149
178
$ orderMock ->expects ($ this ->once ())
150
179
->method ('getId ' )
151
180
->will ($ this ->returnValue ($ this ->loader ->getOrderId ()));
@@ -155,30 +184,43 @@ public function testLoadOrderId()
155
184
$ orderMock ->expects ($ this ->once ())
156
185
->method ('canShip ' )
157
186
->will ($ this ->returnValue (true ));
158
- $ shipmentModelMock = $ this ->getMockBuilder (\ Magento \Sales \Model \Order \Shipment::class )
187
+ $ shipmentModelMock = $ this ->getMockBuilder (' Magento\Sales\Model\Order\Shipment ' )
159
188
->disableOriginalConstructor ()
160
189
->setMethods ([])
161
190
->getMock ();
162
191
$ trackMock = $ this ->getMockBuilder (ShipmentTrackCreationInterface::class)
163
192
->disableOriginalConstructor ()
164
193
->setMethods (['setCarrierCode ' , 'setTrackNumber ' , 'setTitle ' ])
165
194
->getMockForAbstractClass ();
166
- $ this ->trackFactoryMock ->expects ($ this ->any ())
195
+
196
+ $ trackMock ->expects ($ this ->exactly (count ($ this ->data ['tracking ' ])))->method ('setCarrierCode ' )->willReturnSelf ();
197
+ $ trackMock ->expects ($ this ->exactly (count ($ this ->data ['tracking ' ])))->method ('setTrackNumber ' )->willReturnSelf ();
198
+ $ trackMock ->expects ($ this ->exactly (count ($ this ->data ['tracking ' ])))->method ('setTitle ' )->willReturnSelf ();
199
+
200
+ $ this ->shipmentTrackCreationFactoryMock ->expects ($ this ->any ())
167
201
->method ('create ' )
168
- ->will ( $ this -> returnValue ( $ trackMock) );
202
+ ->willReturn ( $ trackMock );
169
203
$ shipmentModelMock ->expects ($ this ->any ())
170
204
->method ('addTrack ' )
171
205
->with ($ this ->equalTo ($ trackMock ))
172
206
->will ($ this ->returnSelf ());
173
207
$ this ->registryMock ->expects ($ this ->once ())
174
208
->method ('register ' )
175
209
->with ('current_shipment ' , $ shipmentModelMock );
176
- $ itemMock = $ this ->getMockBuilder (ShipmentItemCreationInterface::class)
210
+
211
+ $ shipmentItemMock = $ this ->getMockBuilder (ShipmentItemCreationInterface::class)
177
212
->disableOriginalConstructor ()
213
+ ->setMethods (['setOrderItemId ' , 'setQty ' ])
178
214
->getMockForAbstractClass ();
179
- $ this ->itemFactoryMock ->expects ($ this ->any ())
215
+
216
+ $ shipmentItemMock ->expects ($ this ->exactly (count ($ this ->data ['shipment ' ]['items ' ])))
217
+ ->method ('setOrderItemId ' )->willReturnSelf ();
218
+ $ shipmentItemMock ->expects ($ this ->exactly (count ($ this ->data ['shipment ' ]['items ' ])))
219
+ ->method ('setQty ' )->willReturnSelf ();
220
+ $ this ->shipmentItemCreationFactoryMock ->expects ($ this ->any ())
180
221
->method ('create ' )
181
- ->will ($ this ->returnValue ($ itemMock ));
222
+ ->will ($ this ->returnValue ($ shipmentItemMock ));
223
+
182
224
$ this ->documentFactoryMock ->expects ($ this ->once ())->method ('create ' )->willReturn ($ shipmentModelMock );
183
225
184
226
$ this ->assertEquals ($ shipmentModelMock , $ this ->loader ->load ());
0 commit comments