Same name and namespace in other branches
  1. 8.9.x core/tests/Drupal/Tests/Component/Serialization/YamlTestBase.php \Drupal\Tests\Component\Serialization\YamlTestBase
  2. 9 core/tests/Drupal/Tests/Component/Serialization/YamlTestBase.php \Drupal\Tests\Component\Serialization\YamlTestBase

Provides standard data to validate different YAML implementations.

Hierarchy

  • class \Drupal\Tests\Component\Serialization\YamlTestBase extends \PHPUnit\Framework\TestCase

Expanded class hierarchy of YamlTestBase

File

core/tests/Drupal/Tests/Component/Serialization/YamlTestBase.php, line 12

Namespace

Drupal\Tests\Component\Serialization
View source
abstract class YamlTestBase extends TestCase {

  /**
   * Some data that should be able to be serialized.
   */
  public static function providerEncodeDecodeTests() {
    return [
      [
        'data' => [
          'foo' => 'bar',
          'id' => 'schnitzel',
          'ponies' => [
            'nope',
            'thanks',
          ],
          'how' => [
            'about' => 'if',
            'i' => 'ask',
            'nicely',
          ],
          'the' => [
            'answer' => [
              'still' => 'would',
              'be' => 'Y',
            ],
          ],
          'how_many_times' => 123,
          'should_i_ask' => FALSE,
          1,
          FALSE,
          [
            1,
            FALSE,
          ],
          [
            10,
          ],
          [
            0 => '123456',
          ],
        ],
      ],
      [
        'data' => [
          NULL,
        ],
      ],
    ];
  }

  /**
   * Some data that should be able to be deserialized.
   */
  public static function providerDecodeTests() {
    $data = [
      // NULL files.
      [
        '',
        NULL,
      ],
      [
        "\n",
        NULL,
      ],
      [
        "---\n...\n",
        NULL,
      ],
      // Node anchors.
      [
        "\njquery.ui:\n  version: &jquery_ui 1.10.2\n\njquery.ui.accordion:\n  version: *jquery_ui\n",
        [
          'jquery.ui' => [
            'version' => '1.10.2',
          ],
          'jquery.ui.accordion' => [
            'version' => '1.10.2',
          ],
        ],
      ],
    ];

    // 1.2 Bool values.
    foreach (static::providerBoolTest() as $test) {
      $data[] = [
        'bool: ' . $test[0],
        [
          'bool' => $test[1],
        ],
      ];
    }
    $data = array_merge($data, static::providerBoolTest());
    return $data;
  }

  /**
   * Tests different boolean serialization and deserialization.
   */
  public static function providerBoolTest() {
    return [
      [
        'true',
        TRUE,
      ],
      [
        'TRUE',
        TRUE,
      ],
      [
        'True',
        TRUE,
      ],
      [
        'y',
        'y',
      ],
      [
        'Y',
        'Y',
      ],
      [
        'false',
        FALSE,
      ],
      [
        'FALSE',
        FALSE,
      ],
      [
        'False',
        FALSE,
      ],
      [
        'n',
        'n',
      ],
      [
        'N',
        'N',
      ],
    ];
  }

}

Members

Namesort descending Modifiers Type Description Overrides
YamlTestBase::providerBoolTest public static function Tests different boolean serialization and deserialization.
YamlTestBase::providerDecodeTests public static function Some data that should be able to be deserialized.
YamlTestBase::providerEncodeDecodeTests public static function Some data that should be able to be serialized.