You are here

public function NumberPatternTest::testNumberPattern in Commerce Core 8.2

@covers ::id @covers ::label @covers ::getTargetEntityTypeId @covers ::setTargetEntityTypeId @covers ::getPlugin @covers ::getPluginId @covers ::getPluginConfiguration

File

modules/number_pattern/tests/src/Kernel/Entity/NumberPatternTest.php, line 26

Class

NumberPatternTest
Tests the number pattern entity.

Namespace

Drupal\Tests\commerce_number_pattern\Kernel\Entity

Code

public function testNumberPattern() {
  $values = [
    'id' => 'test_id',
    'label' => 'Test label',
    'targetEntityType' => 'entity_test_with_store',
    'plugin' => 'monthly',
    'configuration' => [
      'pattern' => '[pattern:date:Y-m]-[pattern:number]',
      'initial_number' => 100,
      'padding' => 0,
      'per_store_sequence' => TRUE,
    ],
  ];
  $number_pattern = NumberPattern::create($values);
  $this
    ->assertEquals('test_id', $number_pattern
    ->id());
  $this
    ->assertEquals('Test label', $number_pattern
    ->label());
  $this
    ->assertEquals($values['targetEntityType'], $number_pattern
    ->getTargetEntityTypeId());
  $number_pattern
    ->setTargetEntityTypeId('entity_test');
  $this
    ->assertEquals('entity_test', $number_pattern
    ->getTargetEntityTypeId());

  /** @var \Drupal\commerce_number_pattern\Plugin\Commerce\NumberPattern\NumberPatternInterface $number_pattern_plugin */
  $number_pattern_plugin = $number_pattern
    ->getPlugin();
  $this
    ->assertInstanceOf(NumberPatternInterface::class, $number_pattern_plugin);
  $this
    ->assertEquals('monthly', $number_pattern_plugin
    ->getPluginId());
  $this
    ->assertEquals($number_pattern
    ->getPluginConfiguration(), $number_pattern_plugin
    ->getConfiguration());
  $number_pattern
    ->setPluginConfiguration([
    'pattern' => 'INV-[current-date:custom:Y-m]-[pattern:number]',
    'padding' => 5,
  ]);
  $this
    ->assertEquals([
    'pattern' => 'INV-[current-date:custom:Y-m]-[pattern:number]',
    'padding' => 5,
  ], $number_pattern
    ->getPluginConfiguration());
  $number_pattern
    ->setPluginId('yearly');
  $this
    ->assertEquals('yearly', $number_pattern
    ->getPluginId());
  $this
    ->assertEmpty($number_pattern
    ->getPluginConfiguration());
}