Chris@12: assertSame($expected, $class->getMock($this->randomMachineName())); Chris@12: } Chris@12: Chris@12: /** Chris@12: * Tests that createMock is available and calls the correct parent method. Chris@12: * Chris@12: * @covers ::createMock Chris@12: * @dataProvider providerMockVersions Chris@12: */ Chris@12: public function testCreateMock($className, $expected) { Chris@12: $class = new $className(); Chris@12: $this->assertSame($expected, $class->createMock($this->randomMachineName())); Chris@12: } Chris@12: Chris@12: /** Chris@12: * Returns the class names and the string they return. Chris@12: * Chris@12: * @return array Chris@12: */ Chris@12: public function providerMockVersions() { Chris@12: return [ Chris@12: [UnitTestCasePhpunit4TestClass::class, 'PHPUnit 4'], Chris@12: [UnitTestCasePhpunit4TestClassExtends::class, 'PHPUnit 4'], Chris@12: [UnitTestCasePhpunit6TestClass::class, 'PHPUnit 6'], Chris@12: [UnitTestCasePhpunit6TestClassExtends::class, 'PHPUnit 6'], Chris@12: ]; Chris@12: } Chris@12: Chris@12: } Chris@12: Chris@12: /** Chris@12: * Test class for \PHPUnit\Framework\TestCase in PHPUnit 4. Chris@12: */ Chris@12: class Phpunit4TestClass { Chris@17: Chris@12: public function getMock($originalClassName) { Chris@12: return 'PHPUnit 4'; Chris@12: } Chris@12: Chris@12: } Chris@12: Chris@12: /** Chris@12: * Test class for \PHPUnit\Framework\TestCase in PHPUnit 6. Chris@12: */ Chris@12: class Phpunit6TestClass { Chris@17: Chris@12: public function createMock($originalClassName) { Chris@12: return 'PHPUnit 6'; Chris@12: } Chris@12: Chris@12: public function getMockbuilder() { Chris@12: return new Mockbuilder(); Chris@12: } Chris@12: Chris@12: } Chris@12: Chris@12: /** Chris@12: * Test double for PHPUnit_Framework_MockObject_MockBuilder. Chris@12: */ Chris@12: class Mockbuilder { Chris@17: Chris@12: public function __call($name, $arguments) { Chris@12: return $this; Chris@12: } Chris@12: Chris@12: public function getMock() { Chris@12: return 'PHPUnit 6'; Chris@12: } Chris@12: Chris@12: } Chris@12: Chris@12: /** Chris@12: * Test class for \Drupal\Tests\UnitTestCase with PHPUnit 4. Chris@12: */ Chris@12: class UnitTestCasePhpunit4TestClass extends Phpunit4TestClass { Chris@12: use PhpunitCompatibilityTrait; Chris@12: Chris@12: } Chris@12: Chris@12: /** Chris@12: * Test class for \Drupal\Tests\UnitTestCase with PHPUnit 4. Chris@12: */ Chris@12: class UnitTestCasePhpunit4TestClassExtends extends UnitTestCasePhpunit4TestClass { Chris@12: } Chris@12: Chris@12: /** Chris@12: * Test class for \Drupal\Tests\UnitTestCase with PHPUnit 6. Chris@12: */ Chris@12: class UnitTestCasePhpunit6TestClass extends Phpunit6TestClass { Chris@12: use PhpunitCompatibilityTrait; Chris@12: Chris@12: } Chris@12: Chris@12: /** Chris@12: * Test class for \Drupal\Tests\UnitTestCase with PHPUnit 6. Chris@12: */ Chris@12: class UnitTestCasePhpunit6TestClassExtends extends UnitTestCasePhpunit6TestClass { Chris@12: }