public function PriceListItemTest::testDuplicate in Commerce Pricelist 8.2
Tests duplicating a price list item.
File
- tests/
src/ Functional/ PriceListItemTest.php, line 155
Class
- PriceListItemTest
- Tests the price list item UI.
Namespace
Drupal\Tests\commerce_pricelist\FunctionalCode
public function testDuplicate() {
$price_list_item = $this
->createEntity('commerce_pricelist_item', [
'type' => 'commerce_product_variation',
'price_list_id' => $this->priceList
->id(),
'purchasable_entity' => $this->firstVariation
->id(),
'quantity' => '10',
'price' => new Price('50', 'USD'),
]);
$this
->drupalGet($price_list_item
->toUrl('duplicate-form'));
$this
->assertSession()
->pageTextContains('Duplicate Red shirt: $50.00');
$this
->submitForm([
'quantity[0][value]' => '20',
'price[0][number]' => 25,
], 'Save');
$this
->assertSession()
->pageTextContains('Saved the Red shirt: $25.00 price.');
\Drupal::service('entity_type.manager')
->getStorage('commerce_pricelist_item')
->resetCache([
$price_list_item
->id(),
]);
// Confirm that the original price list item is unchanged.
$price_list_item = PriceListItem::load(1);
$this
->assertEquals($this->priceList
->id(), $price_list_item
->getPriceListId());
$this
->assertEquals($this->firstVariation
->id(), $price_list_item
->getPurchasableEntityId());
$this
->assertEquals('10', $price_list_item
->getQuantity());
$this
->assertEquals(new Price('50', 'USD'), $price_list_item
->getPrice());
// Confirm that the new price list item has the expected data.
$price_list_item = PriceListItem::load(2);
$this
->assertEquals($this->priceList
->id(), $price_list_item
->getPriceListId());
$this
->assertEquals($this->firstVariation
->id(), $price_list_item
->getPurchasableEntityId());
$this
->assertEquals('20', $price_list_item
->getQuantity());
$this
->assertEquals(new Price('25', 'USD'), $price_list_item
->getPrice());
}