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