Skip to content

Commit e04514e

Browse files
committed
Integration Test for Can not export Coupon Code to CSV,XML issue29277
1 parent c82e68f commit e04514e

File tree

3 files changed

+161
-0
lines changed

3 files changed

+161
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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+
namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote\ExportCoupons;
9+
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\Helper\Bootstrap;
14+
use Magento\TestFramework\TestCase\AbstractBackendController;
15+
16+
/**
17+
* Abstract controller for test export coupon
18+
*/
19+
abstract class ExportCouponsController extends AbstractBackendController
20+
{
21+
/**
22+
* @var string
23+
*/
24+
protected $resource = 'Magento_SalesRule::quote';
25+
26+
/**
27+
* @var Rule
28+
*/
29+
private $salesRule;
30+
31+
/**
32+
* @var ResourceConnection
33+
*/
34+
private $resourceConnection;
35+
36+
/**
37+
* @inheritdoc
38+
*/
39+
protected function setUp(): void
40+
{
41+
parent::setUp();
42+
$this->resourceConnection = Bootstrap::getObjectManager()->get(ResourceConnection::class);
43+
$this->initSalesRule();
44+
}
45+
46+
/**
47+
* Prepare request
48+
*
49+
* @return void
50+
*/
51+
protected function prepareRequest(): void
52+
{
53+
$couponList = $this ->getCouponsIdList();
54+
if (count($couponList)) {
55+
$this->getRequest()->setParams(['internal_ids' => $couponList[0]])->setMethod('POST');
56+
}
57+
}
58+
59+
/**
60+
* Init current sales rule
61+
*
62+
* @return void
63+
*/
64+
private function initSalesRule(): void
65+
{
66+
/** @var RuleCollection $collection */
67+
$collection = Bootstrap::getObjectManager()->create(RuleCollection::class);
68+
$collection->addFieldToFilter('name', 'Rule with coupon list');
69+
$this->salesRule = $collection->getFirstItem();
70+
}
71+
72+
/**
73+
* Retrieve id list of coupons
74+
*
75+
* @return array
76+
*/
77+
private function getCouponsIdList(): array
78+
{
79+
$select = $this->resourceConnection->getConnection()
80+
->select()
81+
->from($this->resourceConnection->getTableName('salesrule_coupon'))
82+
->columns(['coupon_id'])
83+
->where('rule_id=?', $this->salesRule->getId());
84+
85+
return $this->resourceConnection->getConnection()->fetchCol($select);
86+
}
87+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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+
namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote;
9+
10+
use Magento\SalesRule\Controller\Adminhtml\Promo\Quote\ExportCoupons\ExportCouponsController;
11+
12+
/**
13+
* Test export coupon csv
14+
*
15+
* Verify export csv
16+
* @magentoAppArea adminhtml
17+
* @magentoDataFixture Magento/SalesRule/_files/cart_rule_with_coupon_list.php
18+
*/
19+
class ExportCouponsCsvTest extends ExportCouponsController
20+
{
21+
/**
22+
* @var string
23+
*/
24+
protected $uri = 'backend/sales_rule/promo_quote/exportCouponsCsv';
25+
26+
/**
27+
* Test export csv
28+
*
29+
* @return void
30+
*/
31+
public function testExportCsv(): void
32+
{
33+
$this->prepareRequest();
34+
$this->dispatch($this->uri);
35+
$this->assertStringNotContainsString('404 Error', $this->getResponse()->getBody());
36+
}
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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+
namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote;
9+
10+
use Magento\SalesRule\Controller\Adminhtml\Promo\Quote\ExportCoupons\ExportCouponsController;
11+
12+
/**
13+
* Test export coupon xml
14+
*
15+
* Verify export xml
16+
* @magentoAppArea adminhtml
17+
* @magentoDataFixture Magento/SalesRule/_files/cart_rule_with_coupon_list.php
18+
*/
19+
class ExportCouponsXmlTest extends ExportCouponsController
20+
{
21+
/**
22+
* @var string
23+
*/
24+
protected $uri = 'backend/sales_rule/promo_quote/exportCouponsXml';
25+
26+
/**
27+
* Test export xml
28+
*
29+
* @return void
30+
*/
31+
public function testExportCsv(): void
32+
{
33+
$this->prepareRequest();
34+
$this->dispatch($this->uri);
35+
$this->assertStringNotContainsString('404 Error', $this->getResponse()->getBody());
36+
}
37+
}

0 commit comments

Comments
 (0)