ui_patterns-8.x-1.4/tests/src/Unit/Definition/PatternDefinitionVariantTest.php

tests/src/Unit/Definition/PatternDefinitionVariantTest.php
<?php

declare(strict_types=1);

namespace Drupal\Tests\ui_patterns\Unit\Definition;

use Drupal\Tests\ui_patterns\Unit\UiPatternsTestBase;
use Drupal\ui_patterns\Definition\PatternDefinitionVariant;

/**
 * @coversDefaultClass \Drupal\ui_patterns\Definition\PatternDefinitionVariant
 *
 * @group ui_patterns
 */
class PatternDefinitionVariantTest extends UiPatternsTestBase {

  /**
   * Test constructor with either scalar or array.
   *
   * @covers ::__construct
   * @covers ::hasUse
   * @covers ::setDescription
   * @covers ::setUse
   */
  public function testConstructor(): void {
    // Scalar value.
    $patternDefinitionVariant = new PatternDefinitionVariant('test', 'my label');
    $this->assertEquals('test', $patternDefinitionVariant->getName());
    $this->assertEquals('my label', $patternDefinitionVariant->getLabel());
    $this->assertEquals(NULL, $patternDefinitionVariant->getDescription());
    $this->assertEquals(NULL, $patternDefinitionVariant->getUse());
    $this->assertFalse($patternDefinitionVariant->hasUse());

    // Array without name.
    $patternDefinitionVariant = new PatternDefinitionVariant('test', [
      'label' => 'my label',
    ]);
    $this->assertEquals('test', $patternDefinitionVariant->getName());
    $this->assertEquals('my label', $patternDefinitionVariant->getLabel());
    $this->assertEquals(NULL, $patternDefinitionVariant->getDescription());
    $this->assertEquals(NULL, $patternDefinitionVariant->getUse());
    $this->assertFalse($patternDefinitionVariant->hasUse());

    // Array with name.
    $patternDefinitionVariant = new PatternDefinitionVariant('test', [
      'name' => 'my name',
      'label' => 'my label',
    ]);
    $this->assertEquals('my name', $patternDefinitionVariant->getName());
    $this->assertEquals('my label', $patternDefinitionVariant->getLabel());
    $this->assertEquals(NULL, $patternDefinitionVariant->getDescription());
    $this->assertEquals(NULL, $patternDefinitionVariant->getUse());
    $this->assertFalse($patternDefinitionVariant->hasUse());

    // Other attributes.
    $patternDefinitionVariant = new PatternDefinitionVariant('test', [
      'name' => 'my name',
      'label' => 'my label',
      'description' => 'my description',
      'use' => 'template.twig',
    ]);
    $this->assertEquals('my name', $patternDefinitionVariant->getName());
    $this->assertEquals('my label', $patternDefinitionVariant->getLabel());
    $this->assertEquals('my description', $patternDefinitionVariant->getDescription());
    $this->assertEquals('template.twig', $patternDefinitionVariant->getUse());
    $this->assertTrue($patternDefinitionVariant->hasUse());

    // Setters.
    $patternDefinitionVariant->setDescription('new description');
    $this->assertEquals('new description', $patternDefinitionVariant->getDescription());
    $patternDefinitionVariant->setUse('new use');
    $this->assertEquals('new use', $patternDefinitionVariant->getUse());
  }

  /**
   * Test getters.
   *
   * @dataProvider definitionGettersProvider
   *
   * @covers ::getName
   * @covers ::getLabel
   * @covers ::getDescription
   * @covers ::getUse
   */
  public function testGetters($getter, $name, $value): void {
    $patternDefinitionVariant = new PatternDefinitionVariant('test', [$name => $value]);
    $this->assertEquals($value, call_user_func([$patternDefinitionVariant, $getter]));
  }

  /**
   * Provider.
   *
   * @return array
   *   Data.
   */
  public static function definitionGettersProvider(): array {
    return [
      ['getName', 'name', 'Variant name'],
      ['getLabel', 'label', 'Variant label'],
      ['getDescription', 'description', 'Variant description.'],
      ['getUse', 'use', 'template.twig'],
    ];
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc