public function PriceListTest::testDuplicate in Commerce Pricelist 8.2
Tests duplicating a price list.
File
- tests/
src/ Functional/ PriceListTest.php, line 104
Class
- PriceListTest
- Tests the price list UI.
Namespace
Drupal\Tests\commerce_pricelist\FunctionalCode
public function testDuplicate() {
$roles = $this->adminUser
->getRoles();
$role = reset($roles);
$price_list = $this
->createEntity('commerce_pricelist', [
'type' => 'commerce_product_variation',
'name' => 'Random list',
'start_date' => '2018-07-07T13:37:00',
'customer_roles' => [
$role,
],
]);
$this
->drupalGet($price_list
->toUrl('duplicate-form'));
$this
->assertSession()
->pageTextContains('Duplicate Random list');
$prices_tab_uri = Url::fromRoute('entity.commerce_pricelist_item.collection', [
'commerce_pricelist' => $price_list
->id(),
])
->toString();
$this
->assertSession()
->linkByHrefExists($price_list
->toUrl('edit-form')
->toString());
$this
->assertSession()
->linkByHrefExists($price_list
->toUrl('duplicate-form')
->toString());
$this
->assertSession()
->linkByHrefExists($prices_tab_uri);
$this
->submitForm([
'name[0][value]' => 'Random list2',
'start_date[0][value][date]' => '2018-08-08',
], 'Save');
$this
->assertSession()
->pageTextContains('Saved the Random list2 price list.');
\Drupal::service('entity_type.manager')
->getStorage('commerce_pricelist')
->resetCache([
$price_list
->id(),
]);
// Confirm that the original price list is unchanged.
$price_list = PriceList::load(1);
$this
->assertEquals('Random list', $price_list
->getName());
$this
->assertEquals('2018-07-07 13:37:00', $price_list
->getStartDate()
->format('Y-m-d H:i:s'));
$this
->assertEquals([
$role,
], $price_list
->getCustomerRoles());
// Confirm that the new price list has the expected data.
$price_list = PriceList::load(2);
$this
->assertEquals('Random list2', $price_list
->getName());
$this
->assertEquals('2018-08-08 13:37:00', $price_list
->getStartDate()
->format('Y-m-d H:i:s'));
$this
->assertEquals([
$role,
], $price_list
->getCustomerRoles());
}