Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ExportProductsTest.php
Go to the documentation of this file.
1 <?php
7 
9 use Magento\ImportExport\Test\Page\Adminhtml\AdminExportIndex;
10 use Magento\Mtf\Fixture\InjectableFixture;
12 use Magento\Mtf\Fixture\FixtureFactory;
13 use Magento\Mtf\TestCase\Injectable;
14 
30 class ExportProductsTest extends Injectable
31 {
37  private $fixtureFactory;
38 
44  private $adminExportIndex;
45 
51  private $assertExportProduct;
52 
61  public function __inject(
62  FixtureFactory $fixtureFactory,
63  AdminExportIndex $adminExportIndex,
64  AssertExportProduct $assertExportProduct
65  ) {
66  $this->fixtureFactory = $fixtureFactory;
67  $this->adminExportIndex = $adminExportIndex;
68  $this->assertExportProduct = $assertExportProduct;
69  }
70 
80  public function test(
81  Export $export,
82  $exportData,
83  array $exportedFields,
84  array $products
85  ) {
86  $products = $this->prepareProducts($products);
87  $this->adminExportIndex->open();
88 
89  $exportData = $this->fixtureFactory->createByCode('exportData', ['dataset' => $exportData]);
90  $exportData->persist();
91  $this->adminExportIndex->getExportForm()->fill($exportData);
92  $this->adminExportIndex->getFilterExport()->clickContinue();
93 
94  $this->assertExportProduct->processAssert($export, $exportedFields, $products);
95  }
96 
103  private function prepareProducts(array $products)
104  {
105  $createdProducts = [];
106  foreach ($products as $product) {
107  $data = isset($product['data']) ? $product['data'] : [];
108  if (isset($product['store'])) {
109  $store = $this->fixtureFactory->createByCode('store', ['dataset' => $product['store']]);
110  $store->persist();
111  $data['website_ids'] = [['store' => $store]];
112  }
113  $product = $this->fixtureFactory->createByCode(
114  $product['fixture'],
115  [
116  'dataset' => $product['dataset'],
117  'data' => $data
118  ]
119  );
120  $product->persist();
121  $createdProducts[] = $product;
122  }
123 
124  return $createdProducts;
125  }
126 }
test(Export $export, $exportData, array $exportedFields, array $products)
__inject(FixtureFactory $fixtureFactory, AdminExportIndex $adminExportIndex, AssertExportProduct $assertExportProduct)