function RulesEntityIntegrationTestBase::getContextDefinitionFor
Helper to mock a context definition with a mocked data definition.
Parameters
string $data_type: The data type, example "entity:node".
\Prophecy\Prophecy\ProphecyInterface $data_definition: A prophecy that represents a data definition object.
Return value
\Drupal\rules\Context\ContextDefinition The context definition with the data definition prophecy in it.
1 call to RulesEntityIntegrationTestBase::getContextDefinitionFor()
- LoopTest::testPropertyPathList in tests/
src/ Unit/ Integration/ Engine/ LoopTest.php - Tests that a list can be chosen with a property path selector.
File
-
tests/
src/ Unit/ Integration/ RulesEntityIntegrationTestBase.php, line 159
Class
- RulesEntityIntegrationTestBase
- Base class for Rules integration tests with entities.
Namespace
Drupal\Tests\rules\Unit\IntegrationCode
protected function getContextDefinitionFor($data_type, ProphecyInterface $data_definition) {
// Mock all the setter calls on the data definition that can be ignored.
$data_definition->setLabel(Argument::any())
->willReturn($data_definition->reveal());
$data_definition->setDescription(Argument::any())
->willReturn($data_definition->reveal());
$data_definition->setRequired(Argument::any())
->willReturn($data_definition->reveal());
$data_definition->setLabel(Argument::any())
->willReturn($data_definition->reveal());
$data_definition->setConstraints(Argument::any())
->willReturn($data_definition->reveal());
$data_definition->getConstraints()
->willReturn([]);
$data_definition->getDataType()
->willReturn($data_type);
$original_definition = $this->typedDataManager
->getDefinition($data_type);
$data_definition->getClass()
->willReturn($original_definition['class']);
$context_definition = ContextDefinition::create($data_type);
// Inject a fake typed data manager that will return our data definition
// prophecy if asked for it in the ContextDefinition class.
$typed_data_manager = $this->prophesize(TypedDataManagerInterface::class);
$typed_data_manager->createDataDefinition($data_type)
->willReturn($data_definition->reveal());
$context_definition->setTypedDataManager($typed_data_manager->reveal());
return $context_definition;
}