Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertConfigurableProductDuplicateForm.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit;
10 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex;
11 use Magento\Mtf\Fixture\FixtureInterface;
12 
17 {
26  public function processAssert(
27  FixtureInterface $product,
28  CatalogProductIndex $productGrid,
29  CatalogProductEdit $productPage
30  ) {
31  $product = $this->processFixture($product);
32  $duplicateProductSku = $product->getSku() . '-1';
33  $filter = ['sku' => $duplicateProductSku];
34  $productGrid->open();
35  $productGrid->getProductGrid()->searchAndOpen($filter);
36 
37  $productData = $product->getData();
38  $productData['sku'] = $duplicateProductSku;
39  $productData['status'] = 'No';
40  if (isset($compareData['quantity_and_stock_status']['qty'])) {
41  $compareData['quantity_and_stock_status']['qty'] = '';
42  $compareData['quantity_and_stock_status']['is_in_stock'] = 'Out of Stock';
43  }
44  $fixtureData = $this->prepareFixtureData($productData, $this->sortFields);
45  $formData = $this->prepareFormData($productPage->getProductForm()->getData($product), $this->sortFields);
46  $error = $this->verifyData($fixtureData, $formData);
47  \PHPUnit\Framework\Assert::assertTrue(empty($error), $error);
48  }
49 
57  protected function prepareFixtureData(array $data, array $sortFields = [])
58  {
59  $data['url_key'] = $this->prepareUrlKey($data['url_key']);
60  $data['quantity_and_stock_status']['is_in_stock'] = 'Out of Stock';
61  return parent::prepareFixtureData($data, $sortFields);
62  }
63 
70  protected function prepareUrlKey($urlKey)
71  {
72  preg_match("~\d+$~", $urlKey, $matches);
73  $key = intval($matches[0]) + 1;
74  return str_replace($matches[0], $key, $urlKey);
75  }
76 
82  public function toString()
83  {
84  return 'Form data equals to fixture data of duplicated product.';
85  }
86 }
verifyData(array $fixtureData, array $formData, $isStrict=false, $isPrepareError=true)
$productData
processAssert(FixtureInterface $product, CatalogProductIndex $productGrid, CatalogProductEdit $productPage)