public function PriceListItemTest::testExportPriceListItems in Commerce Pricelist 8.2
Tests exporting price list items.
File
- tests/
src/ Functional/ PriceListItemTest.php, line 405
Class
- PriceListItemTest
- Tests the price list item UI.
Namespace
Drupal\Tests\commerce_pricelist\FunctionalCode
public function testExportPriceListItems() {
// Create 20 price list items for each of our 2 test variations.
$expected_rows = [];
foreach ([
$this->firstVariation,
$this->secondVariation,
] as $variation) {
for ($i = 1; $i <= 20; $i++) {
$price_list_item = $this
->createEntity('commerce_pricelist_item', [
'type' => 'commerce_product_variation',
'price_list_id' => $this->priceList
->id(),
'purchasable_entity' => $variation
->id(),
'quantity' => $i,
'price' => new Price('666', 'USD'),
]);
$expected_rows[] = [
'purchasable_entity' => $variation
->getSku(),
'quantity' => $price_list_item
->getQuantity(),
'list_price' => '',
'price' => $price_list_item
->getPrice()
->getNumber(),
'currency_code' => 'USD',
];
}
}
$this
->drupalGet($this->priceListItemCollectionUri);
$this
->clickLink('Export prices');
$this
->submitForm([
'mapping[quantity_column]' => 'qty',
'mapping[purchasable_entity_label_column]' => '',
'mapping[list_price_column]' => 'msrp',
'mapping[currency_column]' => 'currency',
], 'Export prices');
$this
->assertSession()
->pageTextContains('Exported 40 prices.');
$csv = new CsvFileObject('temporary://pricelist-1-prices.csv', TRUE, [
'product_variation' => 'purchasable_entity',
'qty' => 'quantity',
'msrp' => 'list_price',
'price' => 'price',
'currency' => 'currency_code',
]);
foreach ($expected_rows as $expected_row) {
$row = $csv
->current();
$this
->assertEquals($expected_row, $row);
$csv
->next();
}
$this
->assertEquals($csv
->count(), 40);
}