class DiscoveryTraitTest in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/tests/Drupal/Tests/Component/Plugin/Discovery/DiscoveryTraitTest.php \Drupal\Tests\Component\Plugin\Discovery\DiscoveryTraitTest
@group Plugin @coversDefaultClass Drupal\Component\Plugin\Discovery\DiscoveryTrait
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \Drupal\Tests\PHPUnit_Framework_TestCase
- class \Drupal\Tests\Component\Plugin\Discovery\DiscoveryTraitTest
Expanded class hierarchy of DiscoveryTraitTest
File
- core/
tests/ Drupal/ Tests/ Component/ Plugin/ Discovery/ DiscoveryTraitTest.php, line 16 - Contains \Drupal\Tests\Component\Plugin\Discovery\DiscoveryTraitTest.
Namespace
Drupal\Tests\Component\Plugin\DiscoveryView source
class DiscoveryTraitTest extends UnitTestCase {
/**
* Data provider for testDoGetDefinition().
*
* @return array
* - Expected plugin definition.
* - Plugin definition array, to pass to doGetDefinition().
* - Plugin ID to get, passed to doGetDefinition().
*/
public function providerDoGetDefinition() {
return array(
[
'definition',
[
'plugin_name' => 'definition',
],
'plugin_name',
],
[
NULL,
[
'plugin_name' => 'definition',
],
'bad_plugin_name',
],
);
}
/**
* @covers ::doGetDefinition
* @dataProvider providerDoGetDefinition
*/
public function testDoGetDefinition($expected, $definitions, $plugin_id) {
// Mock the trait.
$trait = $this
->getMockForTrait('Drupal\\Component\\Plugin\\Discovery\\DiscoveryTrait');
// Un-protect the method using reflection.
$method_ref = new \ReflectionMethod($trait, 'doGetDefinition');
$method_ref
->setAccessible(TRUE);
// Call doGetDefinition, with $exception_on_invalid always FALSE.
$this
->assertSame($expected, $method_ref
->invoke($trait, $definitions, $plugin_id, FALSE));
}
/**
* Data provider for testDoGetDefinitionException()
*
* @return array
* - Expected plugin definition.
* - Plugin definition array, to pass to doGetDefinition().
* - Plugin ID to get, passed to doGetDefinition().
*/
public function providerDoGetDefinitionException() {
return array(
[
FALSE,
[
'plugin_name' => 'definition',
],
'bad_plugin_name',
],
);
}
/**
* @covers ::doGetDefinition
* @expectedException Drupal\Component\Plugin\Exception\PluginNotFoundException
* @dataProvider providerDoGetDefinitionException
* @uses Drupal\Component\Plugin\Exception\PluginNotFoundException
*/
public function testDoGetDefinitionException($expected, $definitions, $plugin_id) {
// Mock the trait.
$trait = $this
->getMockForTrait('Drupal\\Component\\Plugin\\Discovery\\DiscoveryTrait');
// Un-protect the method using reflection.
$method_ref = new \ReflectionMethod($trait, 'doGetDefinition');
$method_ref
->setAccessible(TRUE);
// Call doGetDefinition, with $exception_on_invalid always TRUE.
$this
->assertSame($expected, $method_ref
->invoke($trait, $definitions, $plugin_id, TRUE));
}
/**
* @covers ::getDefinition
* @dataProvider providerDoGetDefinition
*/
public function testGetDefinition($expected, $definitions, $plugin_id) {
// Since getDefinition is a wrapper around doGetDefinition(), we can re-use
// its data provider. We just have to tell abstract method getDefinitions()
// to use the $definitions array.
$trait = $this
->getMockForTrait('Drupal\\Component\\Plugin\\Discovery\\DiscoveryTrait');
$trait
->expects($this
->once())
->method('getDefinitions')
->willReturn($definitions);
// Call getDefinition(), with $exception_on_invalid always FALSE.
$this
->assertSame($expected, $trait
->getDefinition($plugin_id, FALSE));
}
/**
* @covers ::getDefinition
* @expectedException Drupal\Component\Plugin\Exception\PluginNotFoundException
* @dataProvider providerDoGetDefinitionException
* @uses Drupal\Component\Plugin\Exception\PluginNotFoundException
*/
public function testGetDefinitionException($expected, $definitions, $plugin_id) {
// Since getDefinition is a wrapper around doGetDefinition(), we can re-use
// its data provider. We just have to tell abstract method getDefinitions()
// to use the $definitions array.
$trait = $this
->getMockForTrait('Drupal\\Component\\Plugin\\Discovery\\DiscoveryTrait');
$trait
->expects($this
->once())
->method('getDefinitions')
->willReturn($definitions);
// Call getDefinition(), with $exception_on_invalid always TRUE.
$this
->assertSame($expected, $trait
->getDefinition($plugin_id, TRUE));
}
/**
* Data provider for testHasDefinition().
*
* @return array
* - Expected TRUE or FALSE.
* - Plugin ID to look for.
*/
public function providerHasDefinition() {
return array(
[
TRUE,
'valid',
],
[
FALSE,
'not_valid',
],
);
}
/**
* @covers ::hasDefinition
* @dataProvider providerHasDefinition
*/
public function testHasDefinition($expected, $plugin_id) {
$trait = $this
->getMockBuilder('Drupal\\Component\\Plugin\\Discovery\\DiscoveryTrait')
->setMethods(array(
'getDefinition',
))
->getMockForTrait();
// Set up our mocked getDefinition() to return TRUE for 'valid' and FALSE
// for 'not_valid'.
$trait
->expects($this
->once())
->method('getDefinition')
->will($this
->returnValueMap(array(
[
'valid',
FALSE,
TRUE,
],
[
'not_valid',
FALSE,
FALSE,
],
)));
// Call hasDefinition().
$this
->assertSame($expected, $trait
->hasDefinition($plugin_id));
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DiscoveryTraitTest:: |
public | function | Data provider for testDoGetDefinition(). | |
DiscoveryTraitTest:: |
public | function | Data provider for testDoGetDefinitionException() | |
DiscoveryTraitTest:: |
public | function | Data provider for testHasDefinition(). | |
DiscoveryTraitTest:: |
public | function | @covers ::doGetDefinition @dataProvider providerDoGetDefinition | |
DiscoveryTraitTest:: |
public | function | @covers ::doGetDefinition @expectedException Drupal\Component\Plugin\Exception\PluginNotFoundException @dataProvider providerDoGetDefinitionException @uses Drupal\Component\Plugin\Exception\PluginNotFoundException | |
DiscoveryTraitTest:: |
public | function | @covers ::getDefinition @dataProvider providerDoGetDefinition | |
DiscoveryTraitTest:: |
public | function | @covers ::getDefinition @expectedException Drupal\Component\Plugin\Exception\PluginNotFoundException @dataProvider providerDoGetDefinitionException @uses Drupal\Component\Plugin\Exception\PluginNotFoundException | |
DiscoveryTraitTest:: |
public | function | @covers ::hasDefinition @dataProvider providerHasDefinition | |
UnitTestCase:: |
protected | property | The random generator. | |
UnitTestCase:: |
protected | property | The app root. | |
UnitTestCase:: |
protected | function | Asserts if two arrays are equal by sorting them first. | |
UnitTestCase:: |
protected | function | Mocks a block with a block plugin. | |
UnitTestCase:: |
protected | function | Returns a stub class resolver. | |
UnitTestCase:: |
public | function | Returns a stub config factory that behaves according to the passed in array. | |
UnitTestCase:: |
public | function | Returns a stub config storage that returns the supplied configuration. | |
UnitTestCase:: |
protected | function | Sets up a container with a cache tags invalidator. | |
UnitTestCase:: |
protected | function | Gets the random generator for the utility methods. | |
UnitTestCase:: |
public | function | Returns a stub translation manager that just returns the passed string. | |
UnitTestCase:: |
public | function | Generates a unique random string containing letters and numbers. | |
UnitTestCase:: |
protected | function | 259 |