@@ -147,8 +147,9 @@ void testOneToOneMapping() {
147
147
148
148
@ Test
149
149
void testMergingTablesWithExactSameSchema () {
150
+ SchemaManager schemaManager = new SchemaManager ();
150
151
SchemaDerivation schemaDerivation =
151
- new SchemaDerivation (new SchemaManager () , ROUTES , new HashMap <>());
152
+ new SchemaDerivation (schemaManager , ROUTES , new HashMap <>());
152
153
153
154
// Create table 1
154
155
List <SchemaChangeEvent > derivedChangesAfterCreateTable =
@@ -158,6 +159,8 @@ void testMergingTablesWithExactSameSchema() {
158
159
.asCreateTableEvent ()
159
160
.hasTableId (MERGED_TABLE )
160
161
.hasSchema (SCHEMA );
162
+ derivedChangesAfterCreateTable .forEach (schemaManager ::applyEvolvedSchemaChange );
163
+
161
164
// Create table 2
162
165
assertThat (schemaDerivation .applySchemaChange (new CreateTableEvent (TABLE_2 , SCHEMA )))
163
166
.isEmpty ();
@@ -177,6 +180,8 @@ void testMergingTablesWithExactSameSchema() {
177
180
.asAddColumnEvent ()
178
181
.hasTableId (MERGED_TABLE )
179
182
.containsAddedColumns (newCol1 , newCol2 );
183
+ derivedChangesAfterAddColumn .forEach (schemaManager ::applyEvolvedSchemaChange );
184
+
180
185
// Add column for table 2
181
186
assertThat (schemaDerivation .applySchemaChange (new AddColumnEvent (TABLE_2 , newColumns )))
182
187
.isEmpty ();
@@ -190,6 +195,8 @@ void testMergingTablesWithExactSameSchema() {
190
195
.asAlterColumnTypeEvent ()
191
196
.hasTableId (MERGED_TABLE )
192
197
.containsTypeMapping (typeMapping );
198
+ derivedChangesAfterAlterColumnType .forEach (schemaManager ::applyEvolvedSchemaChange );
199
+
193
200
// Alter column type for table 2
194
201
assertThat (
195
202
schemaDerivation .applySchemaChange (
@@ -215,6 +222,8 @@ void testMergingTablesWithExactSameSchema() {
215
222
.containsAddedColumns (
216
223
new AddColumnEvent .ColumnWithPosition (
217
224
new PhysicalColumn ("last_name" , DataTypes .STRING (), null )));
225
+ derivedChangesAfterRenameColumn .forEach (schemaManager ::applyEvolvedSchemaChange );
226
+
218
227
// Rename column for table 2
219
228
assertThat (
220
229
schemaDerivation .applySchemaChange (
@@ -235,6 +244,8 @@ void testMergingTableWithDifferentSchemas() {
235
244
.asCreateTableEvent ()
236
245
.hasTableId (MERGED_TABLE )
237
246
.hasSchema (SCHEMA );
247
+ derivedChangesAfterCreateTable .forEach (schemaManager ::applyEvolvedSchemaChange );
248
+
238
249
// Create table 2
239
250
List <SchemaChangeEvent > derivedChangesAfterCreateTable2 =
240
251
schemaDerivation .applySchemaChange (
@@ -250,6 +261,7 @@ void testMergingTableWithDifferentSchemas() {
250
261
"gender" , DataTypes .STRING (), null )))),
251
262
new AlterColumnTypeEvent (
252
263
MERGED_TABLE , ImmutableMap .of ("age" , DataTypes .BIGINT ())));
264
+ derivedChangesAfterCreateTable2 .forEach (schemaManager ::applyEvolvedSchemaChange );
253
265
254
266
// Add column for table 1
255
267
AddColumnEvent .ColumnWithPosition newCol1 =
@@ -266,6 +278,8 @@ void testMergingTableWithDifferentSchemas() {
266
278
.asAddColumnEvent ()
267
279
.hasTableId (MERGED_TABLE )
268
280
.containsAddedColumns (newCol1 , newCol2 );
281
+ derivedChangesAfterAddColumn .forEach (schemaManager ::applyEvolvedSchemaChange );
282
+
269
283
// Add column for table 2
270
284
List <SchemaChangeEvent > derivedChangesAfterAddColumnForTable2 =
271
285
schemaDerivation .applySchemaChange (
@@ -284,6 +298,7 @@ void testMergingTableWithDifferentSchemas() {
284
298
.containsTypeMapping (
285
299
ImmutableMap .of (
286
300
"new_col1" , DataTypes .STRING (), "new_col2" , DataTypes .STRING ()));
301
+ derivedChangesAfterAddColumnForTable2 .forEach (schemaManager ::applyEvolvedSchemaChange );
287
302
288
303
// Alter column type for table 1
289
304
ImmutableMap <String , DataType > typeMapping = ImmutableMap .of ("age" , DataTypes .BIGINT ());
@@ -316,6 +331,8 @@ void testMergingTableWithDifferentSchemas() {
316
331
.containsAddedColumns (
317
332
new AddColumnEvent .ColumnWithPosition (
318
333
new PhysicalColumn ("last_name" , DataTypes .STRING (), null )));
334
+ derivedChangesAfterRenameColumn .forEach (schemaManager ::applyEvolvedSchemaChange );
335
+
319
336
// Rename column for table 2
320
337
List <SchemaChangeEvent > derivedChangesAfterRenameColumnForTable2 =
321
338
schemaDerivation .applySchemaChange (
@@ -327,8 +344,9 @@ void testMergingTableWithDifferentSchemas() {
327
344
.containsAddedColumns (
328
345
new AddColumnEvent .ColumnWithPosition (
329
346
new PhysicalColumn ("first_name" , DataTypes .STRING (), null )));
347
+ derivedChangesAfterRenameColumnForTable2 .forEach (schemaManager ::applyEvolvedSchemaChange );
330
348
331
- assertThat (schemaManager .getLatestUpstreamSchema (MERGED_TABLE ))
349
+ assertThat (schemaManager .getLatestEvolvedSchema (MERGED_TABLE ))
332
350
.contains (
333
351
Schema .newBuilder ()
334
352
.column (Column .physicalColumn ("id" , DataTypes .BIGINT ()))
@@ -344,8 +362,9 @@ void testMergingTableWithDifferentSchemas() {
344
362
345
363
@ Test
346
364
void testIncompatibleTypes () {
365
+ SchemaManager schemaManager = new SchemaManager ();
347
366
SchemaDerivation schemaDerivation =
348
- new SchemaDerivation (new SchemaManager () , ROUTES , new HashMap <>());
367
+ new SchemaDerivation (schemaManager , ROUTES , new HashMap <>());
349
368
// Create table 1
350
369
List <SchemaChangeEvent > derivedChangesAfterCreateTable =
351
370
schemaDerivation .applySchemaChange (new CreateTableEvent (TABLE_1 , SCHEMA ));
@@ -354,6 +373,7 @@ void testIncompatibleTypes() {
354
373
.asCreateTableEvent ()
355
374
.hasTableId (MERGED_TABLE )
356
375
.hasSchema (SCHEMA );
376
+ derivedChangesAfterCreateTable .forEach (schemaManager ::applyEvolvedSchemaChange );
357
377
358
378
// Create table 2
359
379
assertThatThrownBy (
0 commit comments