public function PurchasableEntityTypeRepositoryTest::testGetPurchasableEntityTypes in Commerce Core 8.2
@covers ::getPurchasableEntityTypes
File
- tests/
src/ Unit/ PurchasableEntityTypeRepositoryTest.php, line 20
Class
- PurchasableEntityTypeRepositoryTest
- @coversDefaultClass \Drupal\commerce\PurchasableEntityTypeRepository @group commerce
Namespace
Drupal\Tests\commerce\UnitCode
public function testGetPurchasableEntityTypes() {
$node_entity_type = $this
->prophesize(EntityTypeInterface::class);
$node_entity_type
->entityClassImplements(PurchasableEntityInterface::class)
->willReturn(FALSE);
$product_entity_type = $this
->prophesize(EntityTypeInterface::class);
$product_entity_type
->entityClassImplements(PurchasableEntityInterface::class)
->willReturn(FALSE);
$product_variation_entity_type = $this
->prophesize(EntityTypeInterface::class);
$product_variation_entity_type
->entityClassImplements(PurchasableEntityInterface::class)
->willReturn(TRUE);
$etm = $this
->prophesize(EntityTypeManagerInterface::class);
$etm
->getDefinitions()
->willReturn($this
->createMockedDefinitions([
'node' => [
'is_purchasable' => FALSE,
'label' => 'Node',
],
'commerce_product' => [
'is_purchasable' => FALSE,
'label' => 'Product',
],
'commerce_product_variation' => [
'is_purchasable' => TRUE,
'label' => 'Product variation',
],
]));
$sut = new PurchasableEntityTypeRepository($etm
->reveal());
$purchasable_entity_types = $sut
->getPurchasableEntityTypes();
$this
->assertCount(1, $purchasable_entity_types);
$this
->assertEquals([
'commerce_product_variation',
], array_keys($purchasable_entity_types));
$widget_entity_type = $this
->prophesize(EntityTypeInterface::class);
$widget_entity_type
->entityClassImplements(PurchasableEntityInterface::class)
->willReturn(TRUE);
$etm
->getDefinitions()
->willReturn($this
->createMockedDefinitions([
'node' => [
'is_purchasable' => FALSE,
'label' => 'Node',
],
'commerce_product' => [
'is_purchasable' => FALSE,
'label' => 'Product',
],
'commerce_product_variation' => [
'is_purchasable' => TRUE,
'label' => 'Product variation',
],
'widget' => [
'is_purchasable' => TRUE,
'label' => 'Widget',
],
]));
$purchasable_entity_types = $sut
->getPurchasableEntityTypes();
$this
->assertCount(2, $purchasable_entity_types);
$this
->assertEquals([
'commerce_product_variation',
'widget',
], array_keys($purchasable_entity_types));
}