Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
UpdateDownloadableProductEntityTest.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductEdit;
11 use Magento\Catalog\Test\Page\Adminhtml\CatalogProductIndex;
12 use Magento\Downloadable\Test\Fixture\DownloadableProduct;
13 use Magento\Mtf\Fixture\FixtureFactory;
14 use Magento\Mtf\TestCase\Injectable;
15 
36 class UpdateDownloadableProductEntityTest extends Injectable
37 {
38  /* tags */
39  const MVP = 'yes';
40  const TO_MAINTAIN = 'yes';
41  /* end tags */
42 
48  private $product;
49 
55  private $catalogProductIndex;
56 
62  private $catalogProductEdit;
63 
69  private $fixtureFactory;
70 
77  public function __prepare(Category $category)
78  {
79  $category->persist();
80  return [
81  'category' => $category
82  ];
83  }
84 
93  public function __inject(
94  CatalogProductIndex $catalogProductIndexNewPage,
95  CatalogProductEdit $catalogProductEditPage,
96  FixtureFactory $fixtureFactory
97  ) {
98  $this->product = $fixtureFactory->createByCode(
99  'downloadableProduct',
100  ['dataset' => 'default']
101  );
102  $this->product->persist();
103  $this->fixtureFactory = $fixtureFactory;
104  $this->catalogProductIndex = $catalogProductIndexNewPage;
105  $this->catalogProductEdit = $catalogProductEditPage;
106  }
107 
118  public function test(
119  DownloadableProduct $product,
120  Category $category,
121  $storeDataset = '',
122  $storesCount = 0,
123  $storeIndexToUpdate = null
124  ) {
125  // Preconditions
126  $stores = [];
127  if ($storeDataset) {
128  for ($i = 0; $i < $storesCount; $i++) {
129  $stores[$i] = $this->fixtureFactory->createByCode('store', ['dataset' => $storeDataset]);
130  $stores[$i]->persist();
131  }
132  }
133 
134  // Test steps
135  $filter = ['sku' => $this->product->getSku()];
136  $this->catalogProductIndex->open()->getProductGrid()->searchAndOpen($filter);
137  if ($storeDataset && $storeIndexToUpdate !== null) {
138  $this->catalogProductEdit->getFormPageActions()->changeStoreViewScope($stores[$storeIndexToUpdate]);
139  }
140  $productBlockForm = $this->catalogProductEdit->getProductForm();
141  $productBlockForm->fill($product, null, $category);
142  $this->catalogProductEdit->getFormPageActions()->save();
143 
144  return [
145  'store' => $storeDataset ? $stores[$storeIndexToUpdate] : '',
146  'initialProduct' => $this->product
147  ];
148  }
149 }
test(DownloadableProduct $product, Category $category, $storeDataset='', $storesCount=0, $storeIndexToUpdate=null)
__inject(CatalogProductIndex $catalogProductIndexNewPage, CatalogProductEdit $catalogProductEditPage, FixtureFactory $fixtureFactory)
$i
Definition: gallery.phtml:31