Skip to content

Commit eafb832

Browse files
committed
Fixed tests failing on the lowest dependencies version
1 parent 754ad25 commit eafb832

File tree

1 file changed

+61
-1
lines changed

1 file changed

+61
-1
lines changed

src/adapter/etl-adapter-doctrine/tests/Flow/ETL/Adapter/Doctrine/Tests/Unit/SchemaConverterTest.php

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,68 @@ public function test_converting_flow_to_dbal_schema_without_providing_pk_name()
9191
);
9292
}
9393

94-
public function test_dbal_schema_to_flow_schema() : void
94+
public function test_dbal_schema_to_flow_schema_dbal_36() : void
9595
{
96+
// changeColumn was removed in doctrine/dbal 4.0
97+
// We are using it to perform a different assertion since prior to 4.0 all
98+
// columns were also getting precision set to 10 due to a bug that was executing precision set
99+
// even when precision value was null.
100+
if (!\method_exists(Table::class, 'changeColumn')) {
101+
self::markTestSkipped('Doctrine DBAL >= 3.6+ < 4.0');
102+
}
103+
104+
self::assertEquals(
105+
schema(
106+
int_schema('int', nullable: false, metadata: DbalMetadata::primaryKey('pk_test')->merge(DbalMetadata::precision(10))),
107+
str_schema('str', nullable: false, metadata: DbalMetadata::primaryKey('pk_test')->merge(DbalMetadata::precision(10))),
108+
int_schema('bigint', nullable: false, metadata: DbalMetadata::precision(10)),
109+
str_schema('str_with_length', true, DbalMetadata::length(255)->merge(DbalMetadata::precision(10))),
110+
str_schema('str_unique', true, DbalMetadata::indexUnique('idx_str_unique')->merge(DbalMetadata::precision(10))),
111+
date_schema('date', nullable: true, metadata: DbalMetadata::index('idx_date')->merge(DbalMetadata::precision(10))),
112+
float_schema('float', nullable: true, metadata: DbalMetadata::precision(10)->merge(DbalMetadata::scale(2))->merge(DbalMetadata::precision(10))),
113+
float_schema('float_default', metadata: DbalMetadata::scale(6)->merge(DbalMetadata::precision(10))),
114+
bool_schema('bool', nullable: true, metadata: DbalMetadata::default(true)->merge(DbalMetadata::precision(10))),
115+
json_schema('json', nullable: true, metadata: DbalMetadata::platformOptions(['jsonb' => true])->merge(DbalMetadata::precision(10))),
116+
json_schema('list', metadata: DbalMetadata::columnDefinition('integer[]')->merge(DbalMetadata::precision(10))),
117+
json_schema('map', metadata: DbalMetadata::comment('test comment!')->merge(DbalMetadata::precision(10))),
118+
),
119+
table_schema_to_flow_schema(
120+
new Table(
121+
'test',
122+
[
123+
new Column('int', Type::getType('integer'), ['notnull' => true]),
124+
new Column('str', Type::getType('string'), ['notnull' => true]), // pk changes nullable true into false
125+
new Column('bigint', Type::getType('bigint'), ['notnull' => true]),
126+
new Column('str_with_length', Type::getType('string'), ['notnull' => false, 'length' => 255]),
127+
new Column('str_unique', Type::getType('string'), ['notnull' => false]),
128+
new Column('float', Type::getType('float'), ['notnull' => false, 'precision' => 10, 'scale' => 2]),
129+
new Column('float_default', Type::getType('float'), ['notnull' => true, 'scale' => 6]),
130+
new Column('bool', Type::getType('boolean'), ['notnull' => false, 'default' => true]),
131+
new Column('json', Type::getType('json'), ['notnull' => false, 'platformOptions' => ['jsonb' => true]]),
132+
new Column('list', Type::getType('json'), ['notnull' => true, 'columnDefinition' => 'integer[]']),
133+
new Column('map', Type::getType('json'), ['notnull' => true, 'comment' => 'test comment!']),
134+
new Column('date', Type::getType('date_immutable'), ['notnull' => false]),
135+
],
136+
[
137+
new Index('pk_test', ['int', 'str'], true, true),
138+
new Index('idx_date', ['date'], false, false),
139+
new Index('idx_str_unique', ['str_unique'], true, false),
140+
]
141+
)
142+
)
143+
);
144+
}
145+
146+
public function test_dbal_schema_to_flow_schema_dbal_40() : void
147+
{
148+
// changeColumn was removed in doctrine/dbal 4.0
149+
// We are using it to perform a different assertion since prior to 4.0 all
150+
// columns were also getting precision set to 10 due to a bug that was executing precision set
151+
// even when precision value was null.
152+
if (\method_exists(Table::class, 'changeColumn')) {
153+
self::markTestSkipped('Doctrine DBAL >= 4.0+');
154+
}
155+
96156
self::assertEquals(
97157
schema(
98158
int_schema('int', nullable: false, metadata: DbalMetadata::primaryKey('pk_test')),

0 commit comments

Comments
 (0)