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 { }