/**
  * @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));
 }