/** * @covers ::requiresEntityDataMigration * * @dataProvider providerTestRequiresEntityDataMigration */ public function testRequiresEntityDataMigration($updated_entity_type_definition, $original_entity_type_definition, $original_storage_has_data, $migration_required) { $this->entityType = new ContentEntityType(array('id' => 'entity_test', 'entity_keys' => array('id' => 'id'))); $original_storage = $this->getMockBuilder('Drupal\\Core\\Entity\\Sql\\SqlContentEntityStorage')->disableOriginalConstructor()->getMock(); $original_storage->expects($this->exactly(is_null($original_storage_has_data) ? 0 : 1))->method('hasData')->willReturn($original_storage_has_data); // Assert hasData() is never called on the new storage definition. $this->storage->expects($this->never())->method('hasData'); $connection = $this->getMockBuilder('Drupal\\Core\\Database\\Connection')->disableOriginalConstructor()->getMock(); $this->entityManager->expects($this->any())->method('createHandlerInstance')->willReturn($original_storage); $this->storageSchema = $this->getMockBuilder('Drupal\\Core\\Entity\\Sql\\SqlContentEntityStorageSchema')->setConstructorArgs(array($this->entityManager, $this->entityType, $this->storage, $connection))->setMethods(array('installedStorageSchema'))->getMock(); $this->assertEquals($migration_required, $this->storageSchema->requiresEntityDataMigration($updated_entity_type_definition, $original_entity_type_definition)); }