Anton Kim
Anton Kim

Reputation: 943

org.dbunit.database - junit.framework.ComparisonFailure - table ordering is different every run

Running test and the ordering of table3 is always different so AssertEquals doesn't work.

val expectedDataSet = new CsvDataSet(new File(BatchJobIntegrationTest.getTestResource("folder/expected/")))
val actualDataSet = connection.createDataSet(Array(
  "table1",
  "table2",
  "table3"
))

Assertion.assertEquals(expectedDataSet, actualDataSet)

Tried but didn't work:

Assertion.assertEquals(new SortedDataSet(expectedDataSet), new SortedDataSet(actualDataSet))

Upvotes: 0

Views: 184

Answers (1)

Anton Kim
Anton Kim

Reputation: 943

Turns out the primary key was the issue, this helped:

val expectedTable = expectedDataSet.getTable("table")
val actualTable = actualDataSet.getTable("table")

val actualFilteredTable = DefaultColumnFilter.excludedColumnsTable(actualTable, Array("table_id"))
val expectedFilteredTable = DefaultColumnFilter.excludedColumnsTable(expectedTable, Array("table_id"))
//Assertion.assertEquals(expectedTable, actualFilteredTable)

val expectedColumns = expectedFilteredTable.getTableMetaData().getColumns()
val sortedExpected = new SortedTable(expectedFilteredTable, expectedColumns)
val sortedActual = new SortedTable(actualFilteredTable, expectedColumns)
Assertion.assertEquals(sortedExpected, sortedActual)

Upvotes: 1

Related Questions