Skip to content

Commit 6007afb

Browse files
committed
MC-20423: [Integration Test] Import Table Rates to be used in Configuration Settings
1 parent 5d17c62 commit 6007afb

File tree

3 files changed

+35
-18
lines changed

3 files changed

+35
-18
lines changed

dev/tests/integration/testsuite/Magento/OfflineShipping/Controller/Adminhtml/System/Config/ImportExportTableratesTest.php

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@
99
namespace Magento\OfflineShipping\Controller\Adminhtml\System\Config;
1010

1111
use Magento\Framework\App\Request\Http as HttpRequest;
12+
use Magento\Framework\Filesystem\Directory\WriteInterface;
1213
use Magento\Framework\Message\MessageInterface;
1314
use Magento\Framework\View\LayoutInterface;
1415
use Magento\OfflineShipping\Block\Adminhtml\Carrier\Tablerate\Grid;
15-
use Magento\OfflineShipping\Model\ResourceModel\Carrier\Tablerate;
16+
use Magento\OfflineShipping\Model\ResourceModel\Carrier\Tablerate\Collection;
17+
use Magento\Store\Model\StoreManagerInterface;
1618
use Magento\TestFramework\ObjectManager;
1719
use Magento\TestFramework\Helper\Bootstrap;
1820
use Magento\Framework\Filesystem;
@@ -36,9 +38,14 @@ class ImportExportTableratesTest extends \Magento\TestFramework\TestCase\Abstrac
3638
private $fileSystem;
3739

3840
/**
39-
* @var DirectoryList
41+
* @var StoreManagerInterface
4042
*/
41-
private $varDirectory;
43+
private $storeManager;
44+
45+
/**
46+
* @var int
47+
*/
48+
private $websiteId;
4249

4350
/**
4451
* @inheritdoc
@@ -47,7 +54,8 @@ protected function setUp()
4754
{
4855
$this->objectManager = Bootstrap::getObjectManager();
4956
$this->fileSystem = $this->objectManager->get(Filesystem::class);
50-
$this->varDirectory = $this->fileSystem->getDirectoryWrite(DirectoryList::VAR_DIR);
57+
$this->storeManager = Bootstrap::getObjectManager()->get(StoreManagerInterface::class);
58+
$this->websiteId = $this->storeManager->getWebsite()->getId();
5159

5260
parent::setUp();
5361
}
@@ -85,34 +93,38 @@ public function testImportExportTablerates(): void
8593
]
8694
)->setMethod(HttpRequest::METHOD_POST);
8795

88-
$this->dispatch('backend/admin/system_config/save/section/carriers/website/1/');
96+
$this->dispatch('backend/admin/system_config/save/section/carriers/website/' . $this->websiteId . '/');
8997
$this->assertSessionMessages(
9098
$this->equalTo([(string)__('You saved the configuration.')]),
9199
MessageInterface::TYPE_SUCCESS
92100
);
93101

94-
$tablerateResourceModel = $this->objectManager->create(Tablerate::class);
95-
$connection = $tablerateResourceModel->getConnection();
102+
/** @var Collection $tablerateCollection */
103+
$tablerateCollection = $this->objectManager->create(Collection::class);
104+
$tablerateData = $tablerateCollection->setConditionFilter('package_weight')->getItems()[0]->getData();
105+
$this->assertEquals('666.0000', $tablerateData['price']);
106+
$this->assertEquals('USA', $tablerateData['dest_country']);
107+
$this->assertEquals('10.0000', $tablerateData['condition_value']);
96108

97-
$selectData = $connection->select()->from($tablerateResourceModel->getTable('shipping_tablerate'));
98-
$this->assertNotEmpty($connection->fetchRow($selectData));
99-
100-
$exportCsv = $this->getTablerateCsv();
101-
$exportCsvContent = $this->varDirectory->openFile($exportCsv['value'], 'r')->readAll();
109+
$exportCsvContent = $this->getTablerateCsv();
102110
$importCsvContent = $tmpDirectory->openFile($importCsvPath, 'r')->readAll();
103111

104112
$this->assertEquals($importCsvContent, $exportCsvContent);
105113
}
106114

107115
/**
108-
* @return array
116+
* @return string
109117
*/
110-
private function getTablerateCsv(): array
118+
private function getTablerateCsv(): string
111119
{
120+
/** @var WriteInterface $varDirectory */
121+
$varDirectory = $this->fileSystem->getDirectoryWrite(DirectoryList::VAR_DIR);
122+
112123
/** @var Grid $gridBlock */
113124
$gridBlock = $this->objectManager->get(LayoutInterface::class)->createBlock(Grid::class);
114-
$exportCsv = $gridBlock->setWebsiteId(1)->setConditionName('package_weight')->getCsvFile();
125+
$exportCsv = $gridBlock->setWebsiteId($this->websiteId)->setConditionName('package_weight')->getCsvFile();
126+
$exportCsvContent = $varDirectory->openFile($exportCsv['value'], 'r')->readAll();
115127

116-
return $exportCsv;
128+
return $exportCsvContent;
117129
}
118130
}

dev/tests/integration/testsuite/Magento/OfflineShipping/_files/tablerate_create_file_in_tmp.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
use Magento\Framework\App\Filesystem\DirectoryList;
99
use Magento\Framework\Filesystem;
1010
use Magento\TestFramework\Helper\Bootstrap;
11+
use Magento\Framework\Filesystem\Directory\WriteInterface;
1112

1213
$importCsv = 'tablerates.csv';
1314
$objectManager = Bootstrap::getObjectManager();
15+
/** @var Filesystem $fileSystem */
1416
$fileSystem = $objectManager->get(Filesystem::class);
15-
17+
/** @var WriteInterface $tmpDirectory */
1618
$tmpDirectory = $fileSystem->getDirectoryWrite(DirectoryList::SYS_TMP);
1719
$importCsvPath = $tmpDirectory->getAbsolutePath($importCsv);
1820

dev/tests/integration/testsuite/Magento/OfflineShipping/_files/tablerate_create_file_in_tmp_rollback.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@
88
use Magento\Framework\App\Filesystem\DirectoryList;
99
use Magento\Framework\Filesystem;
1010
use Magento\TestFramework\Helper\Bootstrap;
11+
use Magento\Framework\Filesystem\Directory\WriteInterface;
1112

1213
$objectManager = Bootstrap::getObjectManager();
14+
/** @var Filesystem $fileSystem */
1315
$fileSystem = $objectManager->get(Filesystem::class);
16+
/** @var WriteInterface $tmpDirectory */
1417
$tmpDirectory = $fileSystem->getDirectoryWrite(DirectoryList::SYS_TMP);
1518
$fileName = 'tablerates.csv';
1619

17-
unlink($tmpDirectory->getAbsolutePath($fileName));
20+
$tmpDirectory->delete($fileName);

0 commit comments

Comments
 (0)