/** * @magentoAppArea adminhtml * @magentoDbIsolation enabled * @magentoAppIsolation enabled * @magentoDataFixture Magento/Catalog/_files/product_simple.php */ public function testExport() { $productRepository = $this->objectManager->create(\Magento\Catalog\Api\ProductRepositoryInterface::class); $index = 0; $ids = []; $origPricingData = []; while (isset($skus[$index])) { $ids[$index] = $productRepository->get($skus[$index])->getId(); $origPricingData[$index] = $this->objectManager->create(\Magento\Catalog\Model\Product::class)->load($ids[$index])->getTierPrices(); $index++; } $csvfile = uniqid('importexport_') . '.csv'; $this->model->setWriter(\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\ImportExport\Model\Export\Adapter\Csv::class, ['fileSystem' => $this->fileSystem, 'destination' => $csvfile])); $this->assertNotEmpty($this->model->export()); /** @var \Magento\AdvancedPricingImportExport\Model\Import\AdvancedPricing $importModel */ $importModel = $this->objectManager->create(\Magento\AdvancedPricingImportExport\Model\Import\AdvancedPricing::class); $directory = $this->fileSystem->getDirectoryWrite(DirectoryList::VAR_DIR); $source = $this->objectManager->create(\Magento\ImportExport\Model\Import\Source\Csv::class, ['file' => $csvfile, 'directory' => $directory]); $errors = $importModel->setParameters(['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND, 'entity' => 'advanced_pricing'])->setSource($source)->validateData(); $this->assertTrue($errors->getErrorsCount() == 0, 'Advanced Pricing import error, imported from file:' . $csvfile); $importModel->importData(); while ($index > 0) { $index--; $newPricingData = $this->objectManager->create(\Magento\Catalog\Model\Product::class)->load($ids[$index])->getTierPrices(); $this->assertEquals(count($origPricingData[$index]), count($newPricingData)); $this->assertEqualsOtherThanSkippedAttributes($origPricingData[$index], $newPricingData, []); } }
/** * Test export for current page */ public function testExportCurrentPageCalls() { $curPage = $lastPage = $page = 1; $itemsPerPage = 10; $this->advancedPricing->expects($this->once())->method('getWriter')->willReturn($this->writer); $this->advancedPricing->expects($this->exactly(1))->method('_getEntityCollection')->willReturn($this->abstractCollection); $this->advancedPricing->expects($this->once())->method('_prepareEntityCollection')->with($this->abstractCollection); $this->advancedPricing->expects($this->once())->method('getItemsPerPage')->willReturn($itemsPerPage); $this->advancedPricing->expects($this->once())->method('paginateCollection')->with($page, $itemsPerPage); $this->abstractCollection->expects($this->once())->method('setOrder')->with('has_options', 'asc'); $this->abstractCollection->expects($this->once())->method('setStoreId')->with(Store::DEFAULT_STORE_ID); $this->abstractCollection->expects($this->once())->method('count')->willReturn(1); $this->abstractCollection->expects($this->once())->method('getCurPage')->willReturn($curPage); $this->abstractCollection->expects($this->once())->method('getLastPageNumber')->willReturn($lastPage); $headers = ['headers']; $this->advancedPricing->expects($this->any())->method('_getHeaderColumns')->willReturn($headers); $this->writer->expects($this->any())->method('setHeaderCols')->with($headers); $webSite = 'All Websites [USD]'; $userGroup = 'General'; $this->advancedPricing->expects($this->any())->method('_getWebsiteCode')->willReturn($webSite); $this->advancedPricing->expects($this->any())->method('_getCustomerGroupById')->willReturn($userGroup); $data = [['sku' => 'simpletest', 'group_price_website' => $webSite, 'group_price_customer_group' => $userGroup, 'group_price' => '100', 'tier_price_website' => $webSite, 'tier_price_customer_group' => $userGroup, 'tier_price_qty' => '2', 'tier_price' => '23']]; $this->advancedPricing->expects($this->once())->method('getExportData')->willReturn($data); $exportData = ['sku' => 'simpletest', 'group_price_website' => $webSite, 'group_price_customer_group' => $userGroup, 'group_price' => '100', 'tier_price_website' => $webSite, 'tier_price_customer_group' => $userGroup, 'tier_price_qty' => '2', 'tier_price' => '23']; $this->advancedPricing->expects($this->any())->method('correctExportData')->willReturn($exportData); $this->writer->expects($this->once())->method('writeRow')->with($exportData); $this->writer->expects($this->once())->method('getContents'); $this->advancedPricing->export(); }