5
5
*/
6
6
namespace Magento \Sales \Service \V1 ;
7
7
8
+ use Magento \Sales \Api \Data \OrderInterface ;
8
9
use Magento \TestFramework \TestCase \WebapiAbstract ;
9
10
10
11
class OrderCreateTest extends WebapiAbstract
@@ -38,30 +39,11 @@ protected function prepareOrder()
38
39
/** @var \Magento\Sales\Api\Data\OrderAddressFactory $orderAddressFactory */
39
40
$ orderAddressFactory = $ this ->objectManager ->get ('Magento\Sales\Model\Order\AddressFactory ' );
40
41
41
- $ orderExtensionAttributes = [
42
- 'gift_message ' => [
43
- 'sender ' => 'testSender ' ,
44
- 'recipient ' => 'testRecipient ' ,
45
- 'message ' => 'testMessage '
46
- ]
47
- ];
48
- $ orderItemExtensionAttributes = [
49
- 'gift_message ' => [
50
- 'sender ' => 'testSenderForOrderItem ' ,
51
- 'recipient ' => 'testRecipientForOrderItem ' ,
52
- 'message ' => 'testMessageForOrderItem '
53
- ]
54
- ];
55
42
$ order = $ orderFactory ->create (
56
- ['data ' => $ this ->getDataStructure ('Magento\Sales\Api\Data\OrderInterface ' , $ orderExtensionAttributes )]
43
+ ['data ' => $ this ->getDataStructure ('Magento\Sales\Api\Data\OrderInterface ' )]
57
44
);
58
45
$ orderItem = $ orderItemFactory ->create (
59
- [
60
- 'data ' => $ this ->getDataStructure (
61
- 'Magento\Sales\Api\Data\OrderItemInterface ' ,
62
- $ orderItemExtensionAttributes
63
- )
64
- ]
46
+ ['data ' => $ this ->getDataStructure ('Magento\Sales\Api\Data\OrderItemInterface ' )]
65
47
);
66
48
$ orderPayment = $ orderPaymentFactory ->create (
67
49
['data ' => $ this ->getDataStructure ('Magento\Sales\Api\Data\OrderPaymentInterface ' )]
@@ -116,19 +98,18 @@ protected function prepareOrder()
116
98
return $ orderData ;
117
99
}
118
100
119
- protected function getDataStructure ($ className, array $ extensionAttributes = null )
101
+ protected function getDataStructure ($ className )
120
102
{
121
103
$ refClass = new \ReflectionClass ($ className );
122
104
$ constants = $ refClass ->getConstants ();
123
105
$ data = array_fill_keys ($ constants , null );
124
106
unset($ data ['custom_attributes ' ]);
125
- $ data ['extension_attributes ' ] = $ extensionAttributes ;
126
107
return $ data ;
127
108
}
128
109
129
110
public function testOrderCreate ()
130
111
{
131
- $ expectedOrderArray = $ this ->prepareOrder ();
112
+ $ order = $ this ->prepareOrder ();
132
113
133
114
$ serviceInfo = [
134
115
'rest ' => [
@@ -141,57 +122,13 @@ public function testOrderCreate()
141
122
'operation ' => self ::SERVICE_READ_NAME . 'save ' ,
142
123
],
143
124
];
144
- /** @var array $resultOrderArray */
145
- $ resultOrderArray = $ this ->_webApiCall ($ serviceInfo , ['entity ' => $ expectedOrderArray ]);
146
- $ this ->assertNotEmpty ($ resultOrderArray );
147
- $ this ->assertTrue ((bool )$ resultOrderArray ['entity_id ' ]);
148
-
149
- /** @var \Magento\Sales\Api\Data\Order\Repository $repository */
150
- $ repository = $ this ->objectManager ->get ('Magento\Sales\Api\Data\Order\Repository ' );
151
- /** @var \Magento\Sales\Api\Data\OrderInterface $actualOrder */
152
- $ actualOrder = $ repository ->get ($ resultOrderArray ['entity_id ' ]);
153
- $ this ->assertInstanceOf ('Magento\Sales\Api\Data\OrderInterface ' , $ actualOrder );
154
-
155
- $ this ->assertInstanceOf (
156
- 'Magento\Sales\Api\Data\OrderExtensionInterface ' ,
157
- $ actualOrder ->getExtensionAttributes ()
158
- );
159
- $ this ->assertInstanceOf (
160
- 'Magento\GiftMessage\Api\Data\MessageInterface ' ,
161
- $ actualOrder ->getExtensionAttributes ()->getGiftMessage ()
162
- );
163
-
164
- /** @var \Magento\GiftMessage\Api\Data\MessageInterface $orderGiftMessage */
165
- $ orderGiftMessage = $ actualOrder ->getExtensionAttributes ()->getGiftMessage ();
166
- /** @var \Magento\Sales\Api\Data\OrderItemInterface $actualItemOrder */
167
- $ actualOrderItem = $ actualOrder ->getItems ();
168
- $ this ->assertTrue (is_array ($ actualOrderItem ));
169
- $ this ->assertFalse (empty ($ actualOrderItem ));
170
- $ actualOrderItem = array_pop ($ actualOrderItem );
171
-
172
-
173
- $ this ->assertInstanceOf (
174
- 'Magento\Sales\Api\Data\OrderItemExtensionInterface ' ,
175
- $ actualOrderItem ->getExtensionAttributes ()
176
- );
177
- $ this ->assertInstanceOf (
178
- 'Magento\GiftMessage\Api\Data\MessageInterface ' ,
179
- $ actualOrderItem ->getExtensionAttributes ()->getGiftMessage ()
180
- );
181
- /** @var \Magento\GiftMessage\Api\Data\MessageInterface $orderItemGiftMessage */
182
- $ orderItemGiftMessage = $ actualOrderItem ->getExtensionAttributes ()->getGiftMessage ();
183
-
184
- $ this ->assertEquals ($ expectedOrderArray ['base_grand_total ' ], $ actualOrder ->getBaseGrandTotal ());
185
- $ this ->assertEquals ($ expectedOrderArray ['grand_total ' ], $ actualOrder ->getGrandTotal ());
186
-
187
- $ expectedOrderGiftMessage = $ expectedOrderArray ['extension_attributes ' ]['gift_message ' ];
188
- $ this ->assertEquals ($ expectedOrderGiftMessage ['message ' ], $ orderGiftMessage ->getMessage ());
189
- $ this ->assertEquals ($ expectedOrderGiftMessage ['sender ' ], $ orderGiftMessage ->getSender ());
190
- $ this ->assertEquals ($ expectedOrderGiftMessage ['recipient ' ], $ orderGiftMessage ->getRecipient ());
191
-
192
- $ expectedOrderItemGiftMessage = $ expectedOrderArray ['items ' ][0 ]['extension_attributes ' ]['gift_message ' ];
193
- $ this ->assertEquals ($ expectedOrderItemGiftMessage ['message ' ], $ orderItemGiftMessage ->getMessage ());
194
- $ this ->assertEquals ($ expectedOrderItemGiftMessage ['sender ' ], $ orderItemGiftMessage ->getSender ());
195
- $ this ->assertEquals ($ expectedOrderItemGiftMessage ['recipient ' ], $ orderItemGiftMessage ->getRecipient ());
125
+ $ this ->assertNotEmpty ($ this ->_webApiCall ($ serviceInfo , ['entity ' => $ order ]));
126
+
127
+ /** @var \Magento\Sales\Model\Order $model */
128
+ $ model = $ this ->objectManager ->get ('Magento\Sales\Model\Order ' );
129
+ $ model ->load ($ order ['customer_email ' ], 'customer_email ' );
130
+ $ this ->assertTrue ((bool )$ model ->getId ());
131
+ $ this ->assertEquals ($ order ['base_grand_total ' ], $ model ->getBaseGrandTotal ());
132
+ $ this ->assertEquals ($ order ['grand_total ' ], $ model ->getGrandTotal ());
196
133
}
197
134
}
0 commit comments