You are here

public function PurchasableEntityTypeRepositoryTest::testGetDefaultPurchasableEntityType in Commerce Core 8.2

@covers ::getDefaultPurchasableEntityType

File

tests/src/Unit/PurchasableEntityTypeRepositoryTest.php, line 108

Class

PurchasableEntityTypeRepositoryTest
@coversDefaultClass \Drupal\commerce\PurchasableEntityTypeRepository @group commerce

Namespace

Drupal\Tests\commerce\Unit

Code

public function testGetDefaultPurchasableEntityType() {
  $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',
    ],
    'widget' => [
      'is_purchasable' => TRUE,
      'label' => 'Widget',
    ],
  ]));
  $sut = new PurchasableEntityTypeRepository($etm
    ->reveal());
  $default = $sut
    ->getDefaultPurchasableEntityType();
  $this
    ->assertEquals($default
    ->getLabel(), 'Product variation');
  $etm
    ->getDefinitions()
    ->willReturn($this
    ->createMockedDefinitions([
    'node' => [
      'is_purchasable' => FALSE,
      'label' => 'Node',
    ],
    'widget' => [
      'is_purchasable' => TRUE,
      'label' => 'Widget',
    ],
  ]));
  $sut = new PurchasableEntityTypeRepository($etm
    ->reveal());
  $default = $sut
    ->getDefaultPurchasableEntityType();
  $this
    ->assertEquals($default
    ->getLabel(), 'Widget');
}