Skip to content

Commit c558921

Browse files
committed
Merge remote-tracking branch 'origin/MC-6425' into 2.3-develop-mftf-pr20
2 parents 3b1ba34 + 554f2e2 commit c558921

File tree

2 files changed

+70
-6
lines changed

2 files changed

+70
-6
lines changed

dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCancelTest.php

Lines changed: 55 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,51 @@
66

77
namespace Magento\Sales\Service\V1;
88

9+
use Magento\Framework\ObjectManagerInterface;
10+
use Magento\Sales\Model\Order;
11+
use Magento\TestFramework\Helper\Bootstrap;
912
use Magento\TestFramework\TestCase\WebapiAbstract;
1013

14+
/**
15+
* Canceling of the order
16+
*/
1117
class OrderCancelTest extends WebapiAbstract
1218
{
1319
const SERVICE_VERSION = 'V1';
14-
1520
const SERVICE_NAME = 'salesOrderManagementV1';
1621

1722
/**
18-
* @magentoApiDataFixture Magento/Sales/_files/order.php
23+
* @var ObjectManagerInterface
1924
*/
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)
2153
{
22-
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
23-
$order = $objectManager->get(\Magento\Sales\Model\Order::class)->loadByIncrementId('100000001');
2454
$serviceInfo = [
2555
'rest' => [
2656
'resourcePath' => '/V1/orders/' . $order->getId() . '/cancel',
@@ -33,7 +63,26 @@ public function testOrderCancel()
3363
],
3464
];
3565
$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);
3776
$this->assertTrue($result);
3877
}
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+
}
3988
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
use Magento\Sales\Model\Order;
9+
10+
require __DIR__ . '/order.php';
11+
12+
/** @var Order $order */
13+
$order->setState(Order::STATE_HOLDED);
14+
$order->setStatus(Order::STATE_HOLDED);
15+
$order->save();

0 commit comments

Comments
 (0)