You are here

public function PriceListItemTest::testImportPriceListItemsWithBadPrices in Commerce Pricelist 8.2

Tests importing price list items with badly formatted prices.

File

tests/src/Functional/PriceListItemTest.php, line 350

Class

PriceListItemTest
Tests the price list item UI.

Namespace

Drupal\Tests\commerce_pricelist\Functional

Code

public function testImportPriceListItemsWithBadPrices() {
  $this
    ->drupalGet($this->priceListItemCollectionUri);
  $this
    ->clickLink('Import prices');
  $this
    ->submitForm([
    'files[csv]' => __DIR__ . '/../../fixtures/price_list_invalid_prices.csv',
    'mapping[purchasable_entity_column_type]' => 'sku',
    'mapping[purchasable_entity_column]' => 'product_variation',
    'mapping[quantity_column]' => 'quantity',
    'mapping[list_price_column]' => 'list_price',
    'mapping[price_column]' => 'price',
    'mapping[currency_column]' => 'currency_code',
    'options[delimiter]' => ',',
    'options[enclosure]' => '"',
  ], 'Import prices');
  $this
    ->assertSession()
    ->pageTextContains('Imported 1 price.');

  // We have a badly formatted price in there as well, which we are expecting
  // to be skipped.
  $this
    ->assertSession()
    ->pageTextContains('Skipped 1 price during import.');
  $price_list_item_storage = $this->container
    ->get('entity_type.manager')
    ->getStorage('commerce_pricelist_item');
  $price_list_item = $price_list_item_storage
    ->load(1);
  $this
    ->assertEquals($this->priceList
    ->id(), $price_list_item
    ->getPriceListId());
  $this
    ->assertEquals($this->firstVariation
    ->id(), $price_list_item
    ->getPurchasableEntityId());
  $this
    ->assertEquals('1', $price_list_item
    ->getQuantity());
  $this
    ->assertEquals(new Price('4000', 'USD'), $price_list_item
    ->getPrice());
}