public function PriceListTest::testPriceList in Commerce Pricelist 8.2
@covers ::getName @covers ::setName @covers ::getStores @covers ::setStores @covers ::getStoreIds @covers ::setStoreIds @covers ::getCustomer @covers ::getCustomers @covers ::setCustomer @covers ::setCustomers @covers ::getCustomerId @covers ::setCustomerId @covers ::getCustomerRoles @covers ::setCustomerRoles @covers ::getStartDate @covers ::setStartDate @covers ::getEndDate @covers ::setEndDate @covers ::getWeight @covers ::setWeight @covers ::isEnabled @covers ::setEnabled @covers ::getItemIds
File
- tests/
src/ Kernel/ Entity/ PriceListTest.php, line 45
Class
- PriceListTest
- Tests the price list entity.
Namespace
Drupal\Tests\commerce_pricelist\Kernel\EntityCode
public function testPriceList() {
/** @var \Drupal\commerce_pricelist\Entity\PriceList $price_list */
$price_list = PriceList::create([
'type' => 'commerce_product_variation',
]);
$price_list
->setName('B2B pricing');
$this
->assertEquals('B2B pricing', $price_list
->getName());
$this
->assertEquals('B2B pricing', $price_list
->label());
$price_list
->setStores([
$this->store,
]);
$this
->assertEquals([
$this->store,
], $price_list
->getStores());
$this
->assertEquals([
$this->store
->id(),
], $price_list
->getStoreIds());
$price_list
->setStores([]);
$this
->assertEquals([], $price_list
->getStores());
$price_list
->setStoreIds([
$this->store
->id(),
]);
$this
->assertEquals([
$this->store,
], $price_list
->getStores());
$this
->assertEquals([
$this->store
->id(),
], $price_list
->getStoreIds());
$price_list
->setCustomer($this->user);
$this
->assertEquals($this->user, $price_list
->getCustomer());
$this
->assertEquals($this->user
->id(), $price_list
->getCustomerId());
$price_list
->set('customers', NULL);
$price_list
->setCustomerId($this->user
->id());
$this
->assertEquals($this->user
->id(), $price_list
->getCustomerId());
$this
->assertEquals($this->user, $price_list
->getCustomer());
$price_list
->setCustomers([
$this->user,
]);
$this
->assertEquals([
$this->user,
], $price_list
->getCustomers());
$price_list
->setCustomerRoles([
'authenticated',
]);
$this
->assertEquals([
'authenticated',
], $price_list
->getCustomerRoles());
$date_pattern = DateTimeItemInterface::DATETIME_STORAGE_FORMAT;
$time = $this->container
->get('datetime.time');
$default_start_date = gmdate($date_pattern, $time
->getRequestTime());
$this
->assertEquals($default_start_date, $price_list
->getStartDate()
->format($date_pattern));
$price_list
->setStartDate(new DrupalDateTime('2017-01-01 12:12:12'));
$this
->assertEquals('2017-01-01 12:12:12 UTC', $price_list
->getStartDate()
->format('Y-m-d H:i:s T'));
$this
->assertEquals('2017-01-01 12:12:12 CET', $price_list
->getStartDate('Europe/Berlin')
->format('Y-m-d H:i:s T'));
$this
->assertNull($price_list
->getEndDate());
$price_list
->setEndDate(new DrupalDateTime('2017-01-31 17:15:00'));
$this
->assertEquals('2017-01-31 17:15:00 UTC', $price_list
->getEndDate()
->format('Y-m-d H:i:s T'));
$this
->assertEquals('2017-01-31 17:15:00 CET', $price_list
->getEndDate('Europe/Berlin')
->format('Y-m-d H:i:s T'));
$this
->assertTrue($price_list
->isEnabled());
$price_list
->setEnabled(FALSE);
$this
->assertFalse($price_list
->isEnabled());
$price_list
->setWeight(20);
$this
->assertEquals(20, $price_list
->getWeight());
$price_list
->save();
$this
->assertEmpty($price_list
->getItemIds());
$first_item = PriceListItem::create([
'type' => 'commerce_product_variation',
'price_list_id' => $price_list
->id(),
'quantity' => '1',
'price' => new Price('1', 'USD'),
]);
$first_item
->save();
$second_item = PriceListItem::create([
'type' => 'commerce_product_variation',
'price_list_id' => $price_list
->id(),
'quantity' => '10',
'price' => new Price('5', 'USD'),
]);
$second_item
->save();
$this
->assertEquals([
$first_item
->id(),
$second_item
->id(),
], array_values($price_list
->getItemIds()));
$price_list
->delete();
$this
->assertNull($this
->reloadEntity($first_item));
$this
->assertNull($this
->reloadEntity($second_item));
}