function SqlTest::testLoadEntitiesWithRevisionOfSameEntityType
Same name and namespace in other branches
- 9 core/modules/views/tests/src/Unit/Plugin/query/SqlTest.php \Drupal\Tests\views\Unit\Plugin\query\SqlTest::testLoadEntitiesWithRevisionOfSameEntityType()
- 8.9.x core/modules/views/tests/src/Unit/Plugin/query/SqlTest.php \Drupal\Tests\views\Unit\Plugin\query\SqlTest::testLoadEntitiesWithRevisionOfSameEntityType()
- 10 core/modules/views/tests/src/Unit/Plugin/query/SqlTest.php \Drupal\Tests\views\Unit\Plugin\query\SqlTest::testLoadEntitiesWithRevisionOfSameEntityType()
@covers ::loadEntities @covers ::assignEntitiesToResult
File
-
core/
modules/ views/ tests/ src/ Unit/ Plugin/ query/ SqlTest.php, line 491
Class
- SqlTest
- @coversDefaultClass <a href="/api/drupal/core%21modules%21views%21src%21Plugin%21views%21query%21Sql.php/class/Sql/11.x" title="Views query plugin for an SQL query." class="local">\Drupal\views\Plugin\views\query\Sql</a>
Namespace
Drupal\Tests\views\Unit\Plugin\queryCode
public function testLoadEntitiesWithRevisionOfSameEntityType() : void {
// We don't use prophecy, because prophecy enforces methods.
$view = $this->getMockBuilder(ViewExecutable::class)
->disableOriginalConstructor()
->getMock();
$this->setupViewWithRelationships($view, 'entity_first__revision');
$view_entity = $this->prophesize(ViewEntityInterface::class);
$view_entity->get('base_table')
->willReturn('entity_first');
$view_entity->get('base_field')
->willReturn('id');
$view->storage = $view_entity->reveal();
$entity = [
'first' => [
1 => $this->prophesize(EntityInterface::class)
->reveal(),
2 => $this->prophesize(EntityInterface::class)
->reveal(),
],
];
$entity_revisions = [
'first' => [
1 => $this->prophesize(EntityInterface::class)
->reveal(),
2 => $this->prophesize(EntityInterface::class)
->reveal(),
3 => $this->prophesize(EntityInterface::class)
->reveal(),
],
];
$entity_type_manager = $this->setupEntityTypes($entity, $entity_revisions);
$date_sql = $this->prophesize(DateSqlInterface::class);
$messenger = $this->prophesize(MessengerInterface::class);
$query = new Sql([], 'sql', [], $entity_type_manager->reveal(), $date_sql->reveal(), $messenger->reveal());
$query->view = $view;
$result = [];
$result[] = new ResultRow([
'id' => 1,
'entity_first__revision__vid' => 1,
]);
$result[] = new ResultRow([
'id' => 2,
'entity_first__revision__vid' => 2,
]);
$result[] = new ResultRow([
'id' => 2,
'entity_first__revision__vid' => 3,
]);
$query->addField('entity_first', 'id', 'id');
$query->addField('entity_first__revision', 'vid', 'entity_first__revision__vid');
$query->loadEntities($result);
$this->assertSame($entity['first'][1], $result[0]->_entity);
$this->assertSame($entity['first'][2], $result[1]->_entity);
$this->assertSame($entity['first'][2], $result[2]->_entity);
$this->assertSame($entity_revisions['first'][1], $result[0]->_relationship_entities['entity_first__revision']);
$this->assertSame($entity_revisions['first'][2], $result[1]->_relationship_entities['entity_first__revision']);
$this->assertSame($entity_revisions['first'][3], $result[2]->_relationship_entities['entity_first__revision']);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.