14
14
use Magento \Mtf \Fixture \FixtureInterface ;
15
15
16
16
/**
17
- * Assert products data from csv import file and page are match.
17
+ * Assert that products data from CSV import file and data from product edit page are correct and match.
18
18
*/
19
- class AssertImportProduct extends AbstractConstraint
19
+ class AssertImportedProducts extends AbstractConstraint
20
20
{
21
21
/**
22
22
* Product type.
@@ -46,7 +46,7 @@ class AssertImportProduct extends AbstractConstraint
46
46
private $ import ;
47
47
48
48
/**
49
- * Edit page in Admin.
49
+ * Edit product page in Admin.
50
50
*
51
51
* @var CatalogProductEdit
52
52
*/
@@ -89,7 +89,7 @@ public function processAssert(
89
89
$ products = $ this ->import ->getDataFieldConfig ('import_file ' )['source ' ]->getEntities ();
90
90
foreach ($ products as $ product ) {
91
91
if ($ product ->getDataConfig ()['type_id ' ] === $ this ->productType ) {
92
- $ resultProductsData = $ this ->getPrepareProductsData ($ product );
92
+ $ resultProductsData = $ this ->getDisplayedProductData ($ product );
93
93
$ resultCsvData = $ this ->getResultCsv ($ product ->getSku ());
94
94
\PHPUnit_Framework_Assert::assertEquals (
95
95
$ resultProductsData ,
@@ -101,18 +101,30 @@ public function processAssert(
101
101
}
102
102
103
103
/**
104
- * Prepare product data.
104
+ * Prepare displayed product data.
105
105
*
106
106
* @param FixtureInterface $product
107
107
* @return array
108
108
*/
109
- protected function getPrepareProductsData (FixtureInterface $ product )
109
+ protected function getDisplayedProductData (FixtureInterface $ product )
110
+ {
111
+ $ productData = $ this ->getDisplayedOnProductPageData ($ product );
112
+
113
+ return $ this ->getResultProductsData ($ productData );
114
+ }
115
+
116
+ /**
117
+ * Get product data that is displayed on product edit page in Admin.
118
+ *
119
+ * @param FixtureInterface $product
120
+ * @return array
121
+ */
122
+ protected function getDisplayedOnProductPageData (FixtureInterface $ product )
110
123
{
111
124
$ productId = $ this ->retrieveProductBySku ($ product )['id ' ];
112
125
$ this ->catalogProductEdit ->open (['id ' => $ productId ]);
113
- $ productData = $ this ->catalogProductEdit ->getProductForm ()->getData ($ product );
114
126
115
- return $ this ->getResultProductsData ( $ productData );
127
+ return $ this ->catalogProductEdit -> getProductForm ()-> getData ( $ product );
116
128
}
117
129
118
130
/**
@@ -136,8 +148,18 @@ private function getResultCsv($productSku)
136
148
}
137
149
138
150
/**
139
- * Return prepared products data. Returned array has needed keys only(according with $this-neededKeys).
140
- * Input array: ['sku' => 'simple', 'type' => 'simple', 'qty' => '100', 'weight' => '30', 'url_key' => 'simple_url']
151
+ * Return prepared products data. Parses multidimensional array and returns array with necessary keys
152
+ * only (according with $this->neededKeys).
153
+ * Input array: [
154
+ * 'sku' => 'simple',
155
+ * 'type' => 'simple',
156
+ * 'qty' => '100',
157
+ * 'weight' => '30',
158
+ * 'url_key' => 'simple_url'б,
159
+ * 'website_ids' => [
160
+ * '1'
161
+ * ]
162
+ * ]
141
163
* Output array: ['type' => 'simple', 'qty' => '100']
142
164
*
143
165
* @param array $productsData
@@ -198,6 +220,6 @@ public function retrieveProductBySku(FixtureInterface $product)
198
220
*/
199
221
public function toString ()
200
222
{
201
- return 'Imported products are presents in Admin Data Grid and StoreFront ' ;
223
+ return 'Products data from CSV import file and data from product edit page are correct and match. ' ;
202
224
}
203
225
}
0 commit comments