Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DeleteChildConfigurableProductTest.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex;
10 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductNew;
12 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit;
13 use Magento\Catalog\Test\Constraint\AssertProductSaveMessage as assertProductSaveMessage;
14 use Magento\Mtf\TestCase\Injectable;
15 
30 class DeleteChildConfigurableProductTest extends Injectable
31 {
37  protected $productGrid;
38 
44  protected $productNew;
45 
51  private $assertProductSaveMessage;
52 
58  private $editProductPage;
59 
66  public function __inject(
67  CatalogProductNew $productNew,
68  CatalogProductIndex $productGrid,
69  CatalogProductEdit $editProductPage,
70  AssertProductSaveMessage $assertProductSaveMessage
71  ) {
72  $this->productGrid = $productGrid;
73  $this->productNew = $productNew;
74  $this->editProductPage = $editProductPage;
75  $this->assertProductSaveMessage = $assertProductSaveMessage;
76  }
77 
83  {
84  $deleteProducts = [];
85  $this->productGrid->open();
86  $this->productGrid->getGridPageActionBlock()->addProduct('configurable');
87  $this->productNew->getProductForm()->fill($product);
88  $this->productNew->getFormPageActions()->save($product);
89  $this->assertProductSaveMessage->processAssert($this->editProductPage);
90 
91  $configurableAttributesData = $product->getConfigurableAttributesData();
92  $this->productGrid->open();
93  foreach ($configurableAttributesData['matrix'] as $variation) {
94  $filter = ['name' => $variation['name']];
95  $this->productGrid->getProductGrid()->search($filter);
96  $itemId = $this->productGrid->getProductGrid()->getFirstItemId();
97  $deleteProducts[] = [$this->productGrid->getProductGrid()->getColumnValue($itemId, 'SKU')];
98  }
99  $this->productGrid->open();
100 
101  $this->productGrid->getProductGrid()->massaction($deleteProducts, 'Delete', true);
102  return ['product'=> $product];
103  }
104 }
__inject(CatalogProductNew $productNew, CatalogProductIndex $productGrid, CatalogProductEdit $editProductPage, AssertProductSaveMessage $assertProductSaveMessage)
$configurableAttributesData