Skip to content

Commit c379cea

Browse files
refactor tests
1 parent af02e48 commit c379cea

File tree

3 files changed

+146
-91
lines changed

3 files changed

+146
-91
lines changed

dev/tests/integration/testsuite/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCoupons/ExportCouponsController.php

Lines changed: 0 additions & 87 deletions
This file was deleted.

dev/tests/integration/testsuite/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCoupons/ExportCouponsCsvTest.php

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77

88
namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote\ExportCoupons;
99

10-
use Magento\SalesRule\Controller\Adminhtml\Promo\Quote\ExportCoupons\ExportCouponsController;
10+
use Magento\Framework\App\ResourceConnection;
11+
use Magento\SalesRule\Model\ResourceModel\Rule\Collection as RuleCollection;
12+
use Magento\SalesRule\Model\Rule;
13+
use Magento\TestFramework\TestCase\AbstractBackendController;
14+
use Magento\TestFramework\Helper\Bootstrap;
1115

1216
/**
1317
* Test export coupon csv
@@ -16,13 +20,80 @@
1620
* @magentoAppArea adminhtml
1721
* @magentoDataFixture Magento/SalesRule/_files/cart_rule_with_coupon_list.php
1822
*/
19-
class ExportCouponsCsvTest extends ExportCouponsController
23+
class ExportCouponsCsvTest extends AbstractBackendController
2024
{
2125
/**
2226
* @var string
2327
*/
2428
protected $uri = 'backend/sales_rule/promo_quote/exportCouponsCsv';
2529

30+
/**
31+
* @var string
32+
*/
33+
protected $resource = 'Magento_SalesRule::quote';
34+
35+
/**
36+
* @var Rule
37+
*/
38+
private $salesRule;
39+
40+
/**
41+
* @var ResourceConnection
42+
*/
43+
private $resourceConnection;
44+
45+
/**
46+
* @inheritdoc
47+
*/
48+
protected function setUp(): void
49+
{
50+
parent::setUp();
51+
$this->resourceConnection = Bootstrap::getObjectManager()->get(ResourceConnection::class);
52+
$this->initSalesRule();
53+
}
54+
55+
/**
56+
* Prepare request
57+
*
58+
* @return void
59+
*/
60+
private function prepareRequest(): void
61+
{
62+
$couponList = $this->getCouponsIdList();
63+
if (count($couponList)) {
64+
$this->getRequest()->setParams(['internal_ids' => $couponList[0]])->setMethod('POST');
65+
}
66+
}
67+
68+
/**
69+
* Init current sales rule
70+
*
71+
* @return void
72+
*/
73+
private function initSalesRule(): void
74+
{
75+
/** @var RuleCollection $collection */
76+
$collection = Bootstrap::getObjectManager()->create(RuleCollection::class);
77+
$collection->addFieldToFilter('name', 'Rule with coupon list');
78+
$this->salesRule = $collection->getFirstItem();
79+
}
80+
81+
/**
82+
* Retrieve id list of coupons
83+
*
84+
* @return array
85+
*/
86+
private function getCouponsIdList(): array
87+
{
88+
$select = $this->resourceConnection->getConnection()
89+
->select()
90+
->from($this->resourceConnection->getTableName('salesrule_coupon'))
91+
->columns(['coupon_id'])
92+
->where('rule_id=?', $this->salesRule->getId());
93+
94+
return $this->resourceConnection->getConnection()->fetchCol($select);
95+
}
96+
2697
/**
2798
* Test export csv
2899
*

dev/tests/integration/testsuite/Magento/SalesRule/Controller/Adminhtml/Promo/Quote/ExportCoupons/ExportCouponsXmlTest.php

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77

88
namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote\ExportCoupons;
99

10-
use Magento\SalesRule\Controller\Adminhtml\Promo\Quote\ExportCoupons\ExportCouponsController;
10+
use Magento\Framework\App\ResourceConnection;
11+
use Magento\SalesRule\Model\ResourceModel\Rule\Collection as RuleCollection;
12+
use Magento\SalesRule\Model\Rule;
13+
use Magento\TestFramework\TestCase\AbstractBackendController;
14+
use Magento\TestFramework\Helper\Bootstrap;
1115

1216
/**
1317
* Test export coupon xml
@@ -16,13 +20,80 @@
1620
* @magentoAppArea adminhtml
1721
* @magentoDataFixture Magento/SalesRule/_files/cart_rule_with_coupon_list.php
1822
*/
19-
class ExportCouponsXmlTest extends ExportCouponsController
23+
class ExportCouponsXmlTest extends AbstractBackendController
2024
{
2125
/**
2226
* @var string
2327
*/
2428
protected $uri = 'backend/sales_rule/promo_quote/exportCouponsXml';
2529

30+
/**
31+
* @var string
32+
*/
33+
protected $resource = 'Magento_SalesRule::quote';
34+
35+
/**
36+
* @var Rule
37+
*/
38+
private $salesRule;
39+
40+
/**
41+
* @var ResourceConnection
42+
*/
43+
private $resourceConnection;
44+
45+
/**
46+
* @inheritdoc
47+
*/
48+
protected function setUp(): void
49+
{
50+
parent::setUp();
51+
$this->resourceConnection = Bootstrap::getObjectManager()->get(ResourceConnection::class);
52+
$this->initSalesRule();
53+
}
54+
55+
/**
56+
* Prepare request
57+
*
58+
* @return void
59+
*/
60+
private function prepareRequest(): void
61+
{
62+
$couponList = $this->getCouponsIdList();
63+
if (count($couponList)) {
64+
$this->getRequest()->setParams(['internal_ids' => $couponList[0]])->setMethod('POST');
65+
}
66+
}
67+
68+
/**
69+
* Init current sales rule
70+
*
71+
* @return void
72+
*/
73+
private function initSalesRule(): void
74+
{
75+
/** @var RuleCollection $collection */
76+
$collection = Bootstrap::getObjectManager()->create(RuleCollection::class);
77+
$collection->addFieldToFilter('name', 'Rule with coupon list');
78+
$this->salesRule = $collection->getFirstItem();
79+
}
80+
81+
/**
82+
* Retrieve id list of coupons
83+
*
84+
* @return array
85+
*/
86+
private function getCouponsIdList(): array
87+
{
88+
$select = $this->resourceConnection->getConnection()
89+
->select()
90+
->from($this->resourceConnection->getTableName('salesrule_coupon'))
91+
->columns(['coupon_id'])
92+
->where('rule_id=?', $this->salesRule->getId());
93+
94+
return $this->resourceConnection->getConnection()->fetchCol($select);
95+
}
96+
2697
/**
2798
* Test export xml
2899
*

0 commit comments

Comments
 (0)