6
6
7
7
namespace Magento \Sales \Service \V1 ;
8
8
9
+ use Magento \Framework \ObjectManagerInterface ;
10
+ use Magento \Sales \Model \Order ;
11
+ use Magento \TestFramework \Helper \Bootstrap ;
9
12
use Magento \TestFramework \TestCase \WebapiAbstract ;
10
13
14
+ /**
15
+ * Canceling of the order
16
+ */
11
17
class OrderCancelTest extends WebapiAbstract
12
18
{
13
19
const SERVICE_VERSION = 'V1 ' ;
14
-
15
20
const SERVICE_NAME = 'salesOrderManagementV1 ' ;
16
21
17
22
/**
18
- * @magentoApiDataFixture Magento/Sales/_files/order.php
23
+ * @var ObjectManagerInterface
19
24
*/
20
- public function testOrderCancel ()
25
+ private $ objectManager ;
26
+
27
+ /**
28
+ * @inheritdoc
29
+ */
30
+ protected function setUp ()
31
+ {
32
+ $ this ->objectManager = Bootstrap::getObjectManager ();
33
+ }
34
+
35
+ /**
36
+ * Gets order by increment ID.
37
+ *
38
+ * @param string $incrementId
39
+ * @return Order
40
+ */
41
+ private function getOrder (string $ incrementId ): Order
42
+ {
43
+ return $ this ->objectManager ->create (Order::class)->loadByIncrementId ($ incrementId );
44
+ }
45
+
46
+ /**
47
+ * Send API request for canceling the order
48
+ *
49
+ * @param Order $order
50
+ * @return array|bool|float|int|string
51
+ */
52
+ private function sendCancelRequest (Order $ order )
21
53
{
22
- $ objectManager = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ();
23
- $ order = $ objectManager ->get (\Magento \Sales \Model \Order::class)->loadByIncrementId ('100000001 ' );
24
54
$ serviceInfo = [
25
55
'rest ' => [
26
56
'resourcePath ' => '/V1/orders/ ' . $ order ->getId () . '/cancel ' ,
@@ -33,7 +63,26 @@ public function testOrderCancel()
33
63
],
34
64
];
35
65
$ requestData = ['id ' => $ order ->getId ()];
36
- $ result = $ this ->_webApiCall ($ serviceInfo , $ requestData );
66
+ return $ this ->_webApiCall ($ serviceInfo , $ requestData );
67
+ }
68
+
69
+ /**
70
+ * @magentoApiDataFixture Magento/Sales/_files/order.php
71
+ */
72
+ public function testOrderCancel ()
73
+ {
74
+ $ order = $ this ->getOrder ('100000001 ' );
75
+ $ result = $ this ->sendCancelRequest ($ order );
37
76
$ this ->assertTrue ($ result );
38
77
}
78
+
79
+ /**
80
+ * @magentoApiDataFixture Magento/Sales/_files/order_state_hold.php
81
+ */
82
+ public function testOrderWithStateHoldedShouldNotBeCanceled ()
83
+ {
84
+ $ order = $ this ->getOrder ('100000001 ' );
85
+ $ result = $ this ->sendCancelRequest ($ order );
86
+ $ this ->assertFalse ($ result );
87
+ }
39
88
}
0 commit comments