@Test public void replaceColumnDetectedCorrectly() throws StructureGraphComparisonException { ISqlSchemaFrontend frontend1 = new H2SchemaFrontend(DATABASE_FILE_PATH); ISqlSchemaFrontend frontend2 = new H2SchemaFrontend(REPLACE_COLUMN_DATABASE_FILE_PATH); DirectedGraph<IStructureElement, DefaultEdge> schema1 = frontend1.createSqlSchema(); DirectedGraph<IStructureElement, DefaultEdge> schema2 = frontend2.createSqlSchema(); SqlSchemaComparer comparer = new SqlSchemaComparer(schema1, schema2); SqlSchemaComparisonResult result = comparer.comparisonResult; assertEquals( 29, SqlElementFactory.getSqlElementsOfType(SqlColumnVertex.class, schema1.vertexSet()).size()); assertEquals( 29, SqlElementFactory.getSqlElementsOfType(SqlColumnVertex.class, schema2.vertexSet()).size()); Entry<ISqlElement, SchemaModification> renameColumnEntry = TestHelper.getModificationOfType(result, SchemaModification.RENAME_COLUMN); Entry<ISqlElement, SchemaModification> replaceColumnTypeEntry = TestHelper.getModificationOfType(result, SchemaModification.CHANGE_COLUMN_TYPE); assertNotNull(renameColumnEntry); assertEquals(REPLACE_COLUMN_NAME, renameColumnEntry.getKey().getName()); assertNotNull(replaceColumnTypeEntry); assertEquals( REPLACE_COLUMN_TYPE, ((ColumnTypeVertex) replaceColumnTypeEntry.getKey()).getColumnType()); }
@Test public void droppedColumnDetectedCorrectly() throws StructureGraphComparisonException { ISqlSchemaFrontend frontend1 = new H2SchemaFrontend(DATABASE_FILE_PATH); ISqlSchemaFrontend frontend2 = new H2SchemaFrontend(DROPPED_COLUMN_DATABASE_FILE_PATH); DirectedGraph<IStructureElement, DefaultEdge> schema1 = frontend1.createSqlSchema(); DirectedGraph<IStructureElement, DefaultEdge> schema2 = frontend2.createSqlSchema(); SqlSchemaComparer comparer = new SqlSchemaComparer(schema1, schema2); SqlSchemaComparisonResult result = comparer.comparisonResult; assertEquals( 29, SqlElementFactory.getSqlElementsOfType(SqlColumnVertex.class, schema1.vertexSet()).size()); assertEquals( 28, SqlElementFactory.getSqlElementsOfType(SqlColumnVertex.class, schema2.vertexSet()).size()); Entry<ISqlElement, SchemaModification> entry = TestHelper.getModificationOfType(result, SchemaModification.DELETE_COLUMN); assertNotNull(entry); assertEquals(DROPPED_COLUMN_NAME, entry.getKey().getName()); }