function FieldItemListTest::testHasAffectingChanges
Same name in other branches
- 9 core/tests/Drupal/Tests/Core/Field/FieldItemListTest.php \Drupal\Tests\Core\Field\FieldItemListTest::testHasAffectingChanges()
- 8.9.x core/tests/Drupal/Tests/Core/Field/FieldItemListTest.php \Drupal\Tests\Core\Field\FieldItemListTest::testHasAffectingChanges()
- 10 core/tests/Drupal/Tests/Core/Field/FieldItemListTest.php \Drupal\Tests\Core\Field\FieldItemListTest::testHasAffectingChanges()
Tests identical behavior of ::hasAffectingChanges with ::equals.
@covers ::hasAffectingChanges
@dataProvider providerTestEquals
File
-
core/
tests/ Drupal/ Tests/ Core/ Field/ FieldItemListTest.php, line 170
Class
- FieldItemListTest
- @coversDefaultClass \Drupal\Core\Field\FieldItemList @group Field
Namespace
Drupal\Tests\Core\FieldCode
public function testHasAffectingChanges($expected, ?FieldItemInterface $first_field_item = NULL, ?FieldItemInterface $second_field_item = NULL) : void {
// Mock the field type manager and place it in the container.
$field_type_manager = $this->createMock(FieldTypePluginManagerInterface::class);
$container = new ContainerBuilder();
$container->set('plugin.manager.field.field_type', $field_type_manager);
\Drupal::setContainer($container);
$field_storage_definition = $this->createMock(FieldStorageDefinitionInterface::class);
$field_storage_definition->expects($this->any())
->method('getColumns')
->willReturn([
0 => '0',
1 => '1',
]);
// Set up three properties, one of them being computed.
$property_definitions['0'] = $this->createMock('Drupal\\Core\\TypedData\\DataDefinitionInterface');
$property_definitions['0']->expects($this->any())
->method('isComputed')
->willReturn(FALSE);
$property_definitions['1'] = $this->createMock('Drupal\\Core\\TypedData\\DataDefinitionInterface');
$property_definitions['1']->expects($this->any())
->method('isComputed')
->willReturn(FALSE);
$property_definitions['2'] = $this->createMock('Drupal\\Core\\TypedData\\DataDefinitionInterface');
$property_definitions['2']->expects($this->any())
->method('isComputed')
->willReturn(TRUE);
$field_storage_definition = $this->createMock('Drupal\\Core\\Field\\FieldStorageDefinitionInterface');
$field_storage_definition->expects($this->any())
->method('getPropertyDefinitions')
->willReturn($property_definitions);
$field_definition = $this->createMock(FieldDefinitionInterface::class);
$field_definition->expects($this->any())
->method('getFieldStorageDefinition')
->willReturn($field_storage_definition);
$field_definition->expects($this->any())
->method('isComputed')
->willReturn(FALSE);
$field_list_a = new FieldItemList($field_definition);
$field_list_b = new FieldItemList($field_definition);
// Set up the mocking necessary for creating field items.
$field_type_manager->expects($this->any())
->method('createFieldItem')
->willReturnOnConsecutiveCalls($first_field_item, $second_field_item);
// Set the field item values.
if ($first_field_item instanceof FieldItemInterface) {
$field_list_a->setValue($first_field_item);
}
if ($second_field_item instanceof FieldItemInterface) {
$field_list_b->setValue($second_field_item);
}
$this->assertEquals($expected, !$field_list_a->hasAffectingChanges($field_list_b, ''));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.