Security update for Core, with self-updated composer
[yaffs-website] / web / core / tests / Drupal / Tests / PhpunitCompatibilityTraitTest.php
diff --git a/web/core/tests/Drupal/Tests/PhpunitCompatibilityTraitTest.php b/web/core/tests/Drupal/Tests/PhpunitCompatibilityTraitTest.php
new file mode 100644 (file)
index 0000000..145980b
--- /dev/null
@@ -0,0 +1,115 @@
+<?php
+
+namespace Drupal\Tests;
+
+/**
+ * Tests the PHPUnit forward compatibility trait.
+ *
+ * @coversDefaultClass \Drupal\Tests\PhpunitCompatibilityTrait
+ * @group Tests
+ */
+class PhpunitCompatibilityTraitTest extends UnitTestCase {
+
+  /**
+   * Tests that getMock is available and calls the correct parent method.
+   *
+   * @covers ::getMock
+   * @dataProvider providerMockVersions
+   */
+  public function testGetMock($className, $expected) {
+    $class = new $className();
+    $this->assertSame($expected, $class->getMock($this->randomMachineName()));
+  }
+
+  /**
+   * Tests that createMock is available and calls the correct parent method.
+   *
+   * @covers ::createMock
+   * @dataProvider providerMockVersions
+   */
+  public function testCreateMock($className, $expected) {
+    $class = new $className();
+    $this->assertSame($expected, $class->createMock($this->randomMachineName()));
+  }
+
+  /**
+   * Returns the class names and the string they return.
+   *
+   * @return array
+   */
+  public function providerMockVersions() {
+    return [
+      [UnitTestCasePhpunit4TestClass::class, 'PHPUnit 4'],
+      [UnitTestCasePhpunit4TestClassExtends::class, 'PHPUnit 4'],
+      [UnitTestCasePhpunit6TestClass::class, 'PHPUnit 6'],
+      [UnitTestCasePhpunit6TestClassExtends::class, 'PHPUnit 6'],
+    ];
+  }
+
+}
+
+/**
+ * Test class for \PHPUnit\Framework\TestCase in PHPUnit 4.
+ */
+class Phpunit4TestClass {
+  public function getMock($originalClassName) {
+    return 'PHPUnit 4';
+  }
+
+}
+
+/**
+ * Test class for \PHPUnit\Framework\TestCase in PHPUnit 6.
+ */
+class Phpunit6TestClass {
+  public function createMock($originalClassName) {
+    return 'PHPUnit 6';
+  }
+
+  public function getMockbuilder() {
+    return new Mockbuilder();
+  }
+
+}
+
+/**
+ * Test double for PHPUnit_Framework_MockObject_MockBuilder.
+ */
+class Mockbuilder {
+  public function __call($name, $arguments) {
+    return $this;
+  }
+
+  public function getMock() {
+    return 'PHPUnit 6';
+  }
+
+}
+
+/**
+ * Test class for \Drupal\Tests\UnitTestCase with PHPUnit 4.
+ */
+class UnitTestCasePhpunit4TestClass extends Phpunit4TestClass {
+  use PhpunitCompatibilityTrait;
+
+}
+
+/**
+ * Test class for \Drupal\Tests\UnitTestCase with PHPUnit 4.
+ */
+class UnitTestCasePhpunit4TestClassExtends extends UnitTestCasePhpunit4TestClass {
+}
+
+/**
+ * Test class for \Drupal\Tests\UnitTestCase with PHPUnit 6.
+ */
+class UnitTestCasePhpunit6TestClass extends Phpunit6TestClass {
+  use PhpunitCompatibilityTrait;
+
+}
+
+/**
+ * Test class for \Drupal\Tests\UnitTestCase with PHPUnit 6.
+ */
+class UnitTestCasePhpunit6TestClassExtends extends UnitTestCasePhpunit6TestClass {
+}