Version 1
[yaffs-website] / web / core / tests / Drupal / Tests / Core / Annotation / PluralTranslationTest.php
diff --git a/web/core/tests/Drupal/Tests/Core/Annotation/PluralTranslationTest.php b/web/core/tests/Drupal/Tests/Core/Annotation/PluralTranslationTest.php
new file mode 100644 (file)
index 0000000..91d9079
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+
+namespace Drupal\Tests\Core\Annotation;
+
+use Drupal\Core\Annotation\PluralTranslation;
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * @coversDefaultClass \Drupal\Core\Annotation\PluralTranslation
+ * @group Annotation
+ */
+class PluralTranslationTest extends UnitTestCase {
+
+  /**
+   * @covers ::get
+   *
+   * @dataProvider providerTestGet
+   */
+  public function testGet(array $values) {
+    $annotation = new PluralTranslation($values);
+
+    $default_values = [
+      'context' => NULL,
+    ];
+    $this->assertEquals($values + $default_values, $annotation->get());
+  }
+
+  /**
+   * Provides data to self::testGet().
+   */
+  public function providerTestGet() {
+    $data = [];
+    $data[] = [
+      [
+        'singular' => $this->randomMachineName(),
+        'plural' => $this->randomMachineName(),
+        'context' => $this->randomMachineName(),
+      ],
+    ];
+    $data[] = [
+      [
+        'singular' => $this->randomMachineName(),
+        'plural' => $this->randomMachineName(),
+      ],
+    ];
+
+    return $data;
+  }
+
+  /**
+   * @dataProvider providerTestMissingData
+   */
+  public function testMissingData($data) {
+    $this->setExpectedException(\InvalidArgumentException::class);
+    new PluralTranslation($data);
+  }
+
+  public function providerTestMissingData() {
+    $data = [];
+    $data['all-missing'] = [[]];
+    $data['singular-missing'] = [['plural' => 'muh']];
+    $data['plural-missing'] = [['singular' => 'muh']];
+    return $data;
+  }
+
+}