9
9
namespace Magento \OfflineShipping \Controller \Adminhtml \System \Config ;
10
10
11
11
use Magento \Framework \App \Request \Http as HttpRequest ;
12
+ use Magento \Framework \Filesystem \Directory \WriteInterface ;
12
13
use Magento \Framework \Message \MessageInterface ;
13
14
use Magento \Framework \View \LayoutInterface ;
14
15
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 ;
16
18
use Magento \TestFramework \ObjectManager ;
17
19
use Magento \TestFramework \Helper \Bootstrap ;
18
20
use Magento \Framework \Filesystem ;
@@ -36,9 +38,14 @@ class ImportExportTableratesTest extends \Magento\TestFramework\TestCase\Abstrac
36
38
private $ fileSystem ;
37
39
38
40
/**
39
- * @var DirectoryList
41
+ * @var StoreManagerInterface
40
42
*/
41
- private $ varDirectory ;
43
+ private $ storeManager ;
44
+
45
+ /**
46
+ * @var int
47
+ */
48
+ private $ websiteId ;
42
49
43
50
/**
44
51
* @inheritdoc
@@ -47,7 +54,8 @@ protected function setUp()
47
54
{
48
55
$ this ->objectManager = Bootstrap::getObjectManager ();
49
56
$ 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 ();
51
59
52
60
parent ::setUp ();
53
61
}
@@ -85,34 +93,38 @@ public function testImportExportTablerates(): void
85
93
]
86
94
)->setMethod (HttpRequest::METHOD_POST );
87
95
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 . ' / ' );
89
97
$ this ->assertSessionMessages (
90
98
$ this ->equalTo ([(string )__ ('You saved the configuration. ' )]),
91
99
MessageInterface::TYPE_SUCCESS
92
100
);
93
101
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 ' ]);
96
108
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 ();
102
110
$ importCsvContent = $ tmpDirectory ->openFile ($ importCsvPath , 'r ' )->readAll ();
103
111
104
112
$ this ->assertEquals ($ importCsvContent , $ exportCsvContent );
105
113
}
106
114
107
115
/**
108
- * @return array
116
+ * @return string
109
117
*/
110
- private function getTablerateCsv (): array
118
+ private function getTablerateCsv (): string
111
119
{
120
+ /** @var WriteInterface $varDirectory */
121
+ $ varDirectory = $ this ->fileSystem ->getDirectoryWrite (DirectoryList::VAR_DIR );
122
+
112
123
/** @var Grid $gridBlock */
113
124
$ 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 ();
115
127
116
- return $ exportCsv ;
128
+ return $ exportCsvContent ;
117
129
}
118
130
}
0 commit comments