Skip to content

Commit

Permalink
Correction handling case in raw values for factories (#18)
Browse files Browse the repository at this point in the history
* Correction handling case in DatabaseFactory property values

* Correction handling case in ForeignFactory raw property values
  • Loading branch information
courtney-miles authored Jun 1, 2023
1 parent e9edaf4 commit 3b0fcdd
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 54 deletions.
12 changes: 6 additions & 6 deletions src/SchemaFactory/MySQL/Constraint/ForeignKeyFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -77,18 +77,18 @@ public function createFromRaw(array $rawTableFKs)
$foreignKeyForeignKeyColumns = [];

foreach ($rawTableFKs as $rawTableFK) {
$keyName = $rawTableFK['constraint_name'];
$keyName = $rawTableFK['CONSTRAINT_NAME'];

if (!isset($foreignKeys[$keyName])) {
$foreignKey = $this->newForeignKey($keyName);
$foreignKey->setTableName($rawTableFK['table_name']);
$foreignKey->setReferenceTableName($rawTableFK['referenced_table_name']);
$foreignKey->setTableName($rawTableFK['TABLE_NAME']);
$foreignKey->setReferenceTableName($rawTableFK['REFERENCED_TABLE_NAME']);
$foreignKeys[$keyName] = $foreignKey;
}

$foreignKeyForeignKeyColumns[$keyName][$rawTableFK['ordinal_position']] = $this->newForeignKeyColumn(
$rawTableFK['column_name'],
$rawTableFK['referenced_column_name']
$foreignKeyForeignKeyColumns[$keyName][$rawTableFK['ORDINAL_POSITION']] = $this->newForeignKeyColumn(
$rawTableFK['COLUMN_NAME'],
$rawTableFK['REFERENCED_COLUMN_NAME']
);
}

Expand Down
4 changes: 2 additions & 2 deletions src/SchemaFactory/MySQL/Database/DatabaseFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ public function fetchRaw($databaseName)

public function createFromRaw(array $rawDatabase)
{
$database = $this->newDatabase($rawDatabase['schema_name']);
$database->setDefaultCollation($rawDatabase['default_collation_name']);
$database = $this->newDatabase($rawDatabase['SCHEMA_NAME']);
$database->setDefaultCollation($rawDatabase['DEFAULT_COLLATION_NAME']);

return $database;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -215,20 +215,20 @@ public function createFromRawTestData()
],
[
[
'table_name' => 'schnoop_tbl',
'constraint_name' => 'fk_schnoop',
'column_name' => 'id',
'ordinal_position' => '1',
'referenced_table_name' => 'schnoop_ref_tbl',
'referenced_column_name' => 'ref_id',
'TABLE_NAME' => 'schnoop_tbl',
'CONSTRAINT_NAME' => 'fk_schnoop',
'COLUMN_NAME' => 'id',
'ORDINAL_POSITION' => '1',
'REFERENCED_TABLE_NAME' => 'schnoop_ref_tbl',
'REFERENCED_COLUMN_NAME' => 'ref_id',
],
[
'table_name' => 'schnoop_tbl',
'constraint_name' => 'fk_schnoop',
'column_name' => 'name',
'ordinal_position' => '2',
'referenced_table_name' => 'schnoop_ref_tbl',
'referenced_column_name' => 'ref_name',
'TABLE_NAME' => 'schnoop_tbl',
'CONSTRAINT_NAME' => 'fk_schnoop',
'COLUMN_NAME' => 'name',
'ORDINAL_POSITION' => '2',
'REFERENCED_TABLE_NAME' => 'schnoop_ref_tbl',
'REFERENCED_COLUMN_NAME' => 'ref_name',
],
],
],
Expand Down Expand Up @@ -261,20 +261,20 @@ public function createFromRawTestData()
],
[
[
'table_name' => 'schnoop_tbl',
'constraint_name' => 'fk_schnoop01',
'column_name' => 'id',
'ordinal_position' => '1',
'referenced_table_name' => 'schnoop_ref_tbl',
'referenced_column_name' => 'ref_id',
'TABLE_NAME' => 'schnoop_tbl',
'CONSTRAINT_NAME' => 'fk_schnoop01',
'COLUMN_NAME' => 'id',
'ORDINAL_POSITION' => '1',
'REFERENCED_TABLE_NAME' => 'schnoop_ref_tbl',
'REFERENCED_COLUMN_NAME' => 'ref_id',
],
[
'table_name' => 'schnoop_tbl',
'constraint_name' => 'fk_schnoop02',
'column_name' => 'name',
'ordinal_position' => '1',
'referenced_table_name' => 'schnoop_ref_tbl',
'referenced_column_name' => 'ref_name',
'TABLE_NAME' => 'schnoop_tbl',
'CONSTRAINT_NAME' => 'fk_schnoop02',
'COLUMN_NAME' => 'name',
'ORDINAL_POSITION' => '1',
'REFERENCED_TABLE_NAME' => 'schnoop_ref_tbl',
'REFERENCED_COLUMN_NAME' => 'ref_name',
],
],
],
Expand Down
27 changes: 5 additions & 22 deletions tests/Schnoop/SchemaFactory/MySQL/Database/DatabaseFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,29 +42,12 @@ public function testFetchRaw()

public function testCreateFromRaw()
{
$raw = [
'schema_name' => 'schnoop_db',
'default_collation_name' => 'utf8mb4_unicode_ci',
];

$mockDatabase = $this->createMock(Database::class);

$mockDatabase->expects($this->once())
->method('setDefaultCollation')
->with($raw['default_collation_name']);

/** @var DatabaseFactory|MockObject $mockDatabaseMapper */
$mockDatabaseMapper = $this->getMockBuilder(DatabaseFactory::class)
->disableOriginalConstructor()
->setMethods(['newDatabase'])
->getMock();

$mockDatabaseMapper->expects($this->once())
->method('newDatabase')
->with($raw['schema_name'])
->willReturn($mockDatabase);
$database = $this->databaseMapper->createFromRaw(
$this->databaseMapper->fetchRaw($this->getDatabaseName())
);

$this->assertSame($mockDatabase, $mockDatabaseMapper->createFromRaw($raw));
$this->assertSame($this->getDatabaseName(), $database->getName());
$this->assertSame('utf8mb4_unicode_ci', $database->getDefaultCollation());
}

public function testFetch()
Expand Down

0 comments on commit 3b0fcdd

Please sign in to comment.