/**
  * @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, []);
     }
 }
示例#2
0
 /**
  * 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();
 }