Issue #2675006 by danflanagan8, robpowell, quietone: Write UnitTest for MigrationConfigurationTrait and fix Exception Handling
(cherry picked from commit ce4ce0ac35
)
merge-requests/1018/merge
parent
d764daae29
commit
3246a76fff
|
@ -220,7 +220,7 @@ trait MigrationConfigurationTrait {
|
|||
}
|
||||
}
|
||||
}
|
||||
catch (\PDOException $e) {
|
||||
catch (DatabaseExceptionWrapper $e) {
|
||||
$version_string = FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,144 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\migrate_drupal\Unit;
|
||||
|
||||
use Drupal\Core\Database\DatabaseExceptionWrapper;
|
||||
use Drupal\migrate_drupal\MigrationConfigurationTrait;
|
||||
use Drupal\Tests\UnitTestCase;
|
||||
|
||||
/**
|
||||
* @coversDefaultClass \Drupal\migrate_drupal\MigrationConfigurationTrait
|
||||
* @group migrate_drupal
|
||||
*/
|
||||
class MigrationConfigurationTraitTest extends UnitTestCase {
|
||||
|
||||
/**
|
||||
* @covers ::getLegacyDrupalVersion
|
||||
* @dataProvider providerTestGetLegacyDrupalVersion
|
||||
*/
|
||||
public function testGetLegacyDrupalVersion($expected_version_string, $schema_version, $exception, $table_map) {
|
||||
if ($schema_version) {
|
||||
$statement = $this->createMock('\Drupal\Core\Database\StatementInterface');
|
||||
$statement->expects($this->any())
|
||||
->method('fetchField')
|
||||
->willReturn($schema_version);
|
||||
}
|
||||
|
||||
$schema = $this->createMock('\Drupal\Core\Database\Schema');
|
||||
$schema->expects($this->any())
|
||||
->method('tableExists')
|
||||
->willReturnMap($table_map);
|
||||
|
||||
$connection = $this->getMockBuilder('Drupal\Core\Database\Connection')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
if ($exception) {
|
||||
$connection->expects($this->any())
|
||||
->method('query')
|
||||
->willThrowException($exception);
|
||||
}
|
||||
else {
|
||||
$connection->expects($this->any())
|
||||
->method('query')
|
||||
->willReturn($statement);
|
||||
}
|
||||
|
||||
$connection->expects($this->any())
|
||||
->method('schema')
|
||||
->willReturn($schema);
|
||||
|
||||
$actual_version_string = MigrationConfigurationTrait::getLegacyDrupalVersion($connection);
|
||||
$this->assertSame($expected_version_string, $actual_version_string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides data for testGetLegacyDrupalVersion.
|
||||
*/
|
||||
public function providerTestGetLegacyDrupalVersion() {
|
||||
return [
|
||||
'D5' => [
|
||||
'expected_version_string' => '5',
|
||||
'schema_version' => '1678',
|
||||
'exception' => NULL,
|
||||
'table_map' => [
|
||||
['system', TRUE],
|
||||
['key_value', FALSE],
|
||||
],
|
||||
],
|
||||
'D6' => [
|
||||
'expected_version_string' => '6',
|
||||
'schema_version' => '6057',
|
||||
'exception' => NULL,
|
||||
'table_map' => [
|
||||
['system', TRUE],
|
||||
['key_value', FALSE],
|
||||
],
|
||||
],
|
||||
'D7' => [
|
||||
'expected_version_string' => '7',
|
||||
'schema_version' => '7065',
|
||||
'exception' => NULL,
|
||||
'table_map' => [
|
||||
['system', TRUE],
|
||||
['key_value', FALSE],
|
||||
],
|
||||
],
|
||||
'D8' => [
|
||||
'expected_version_string' => '8',
|
||||
'schema_version' => serialize('8976'),
|
||||
'exception' => NULL,
|
||||
'table_map' => [
|
||||
['system', FALSE],
|
||||
['key_value', TRUE],
|
||||
],
|
||||
],
|
||||
'D9' => [
|
||||
'expected_version_string' => '9',
|
||||
'schema_version' => serialize('9270'),
|
||||
'exception' => NULL,
|
||||
'table_map' => [
|
||||
['system', FALSE],
|
||||
['key_value', TRUE],
|
||||
],
|
||||
],
|
||||
'Not drupal' => [
|
||||
'expected_version_string' => FALSE,
|
||||
'schema_version' => "not drupal I guess",
|
||||
'exception' => NULL,
|
||||
'table_map' => [
|
||||
['system', FALSE],
|
||||
['key_value', FALSE],
|
||||
],
|
||||
],
|
||||
'D5 almost' => [
|
||||
'expected_version_string' => FALSE,
|
||||
'schema_version' => '123',
|
||||
'exception' => NULL,
|
||||
'table_map' => [
|
||||
['system', TRUE],
|
||||
['key_value', FALSE],
|
||||
],
|
||||
],
|
||||
'D5/6/7 Exception' => [
|
||||
'expected_version_string' => FALSE,
|
||||
'schema_version' => NULL,
|
||||
'exception' => new DatabaseExceptionWrapper(),
|
||||
'table_map' => [
|
||||
['system', TRUE],
|
||||
['key_value', FALSE],
|
||||
],
|
||||
],
|
||||
'D8/9 Exception' => [
|
||||
'expected_version_string' => FALSE,
|
||||
'schema_version' => NULL,
|
||||
'exception' => new DatabaseExceptionWrapper(),
|
||||
'table_map' => [
|
||||
['system', FALSE],
|
||||
['key_value', TRUE],
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue