From 906d72859f67d1d9d9016d6b689805286d4c2675 Mon Sep 17 00:00:00 2001 From: Joao Esperancinha Date: Tue, 31 Mar 2020 17:51:04 +0200 Subject: [PATCH] [BAEL-2749] Test Code Completion --- .../baeldung/dbunit/DataSourceDBUnitTest.java | 49 ++++++++++++++++++- .../java/com/baeldung/dbunit/DbUnitTest.java | 2 +- .../baeldung/dbunit/OldSchoolDbUnitTest.java | 19 ++++++- dbunit/src/test/resources/data.xml | 2 - .../expected-ignoring-registered_at.xml | 9 ++++ .../resources/expected-multiple-failures.xml | 9 ++++ dbunit/src/test/resources/expected-user.xml | 3 +- dbunit/src/test/resources/items.xml | 1 - .../src/test/resources/items_exp_delete.xml | 1 - .../items_exp_delete_no_produced.xml | 1 - .../src/test/resources/items_exp_rename.xml | 1 - .../items_exp_rename_no_produced.xml | 1 - dbunit/src/test/resources/users.xml | 1 - .../src/test/resources/users_exp_delete.xml | 1 - .../src/test/resources/users_exp_rename.xml | 1 - 15 files changed, 85 insertions(+), 16 deletions(-) create mode 100644 dbunit/src/test/resources/expected-ignoring-registered_at.xml create mode 100644 dbunit/src/test/resources/expected-multiple-failures.xml diff --git a/dbunit/src/test/java/com/baeldung/dbunit/DataSourceDBUnitTest.java b/dbunit/src/test/java/com/baeldung/dbunit/DataSourceDBUnitTest.java index d30305ecf2..7482f38535 100644 --- a/dbunit/src/test/java/com/baeldung/dbunit/DataSourceDBUnitTest.java +++ b/dbunit/src/test/java/com/baeldung/dbunit/DataSourceDBUnitTest.java @@ -2,10 +2,15 @@ package com.baeldung.dbunit; import org.dbunit.Assertion; import org.dbunit.DataSourceBasedDBTestCase; +import org.dbunit.assertion.DiffCollectingFailureHandler; +import org.dbunit.assertion.Difference; import org.dbunit.dataset.IDataSet; import org.dbunit.dataset.ITable; import org.dbunit.dataset.xml.FlatXmlDataSetBuilder; +import org.dbunit.operation.DatabaseOperation; import org.h2.jdbcx.JdbcDataSource; +import org.junit.After; +import org.junit.Before; import org.junit.Test; import javax.sql.DataSource; @@ -14,6 +19,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import static com.baeldung.dbunit.ConnectionSettings.JDBC_URL; +import static java.util.stream.Collectors.joining; import static org.assertj.core.api.Assertions.assertThat; public class DataSourceDBUnitTest extends DataSourceBasedDBTestCase { @@ -34,6 +40,27 @@ public class DataSourceDBUnitTest extends DataSourceBasedDBTestCase { .getResourceAsStream("data.xml")); } + @Override + protected DatabaseOperation getSetUpOperation() { + return DatabaseOperation.REFRESH; + } + + @Override + protected DatabaseOperation getTearDownOperation() { + return DatabaseOperation.DELETE_ALL; + } + + @Before + public void setUp() throws Exception { + super.setUp(); + } + + @After + public void tearDown() throws Exception { + super.tearDown(); + } + + @Test public void testSimpleDataSet() throws SQLException { final Connection connection = getDataSource() @@ -56,7 +83,6 @@ public class DataSourceDBUnitTest extends DataSourceBasedDBTestCase { Assertion.assertEquals(expectedTable, actualTable); } - @Test public void testAssertByQuery() throws Exception { IDataSet expectedDataSet = new FlatXmlDataSetBuilder().build(getClass() @@ -70,7 +96,26 @@ public class DataSourceDBUnitTest extends DataSourceBasedDBTestCase { ITable actualData = getConnection() .createQueryTable( "result_name", - "SELECT * FROM CLIENTS WHERE id='2'"); + "SELECT * FROM CLIENTS WHERE last_name='Jansen'"); Assertion.assertEqualsIgnoreCols(expectedTable, actualData, new String[]{"id"}); } + + @Test(expected = AssertionError.class) + public void testMultipleFailures() throws Exception { + IDataSet expectedDataSet = new FlatXmlDataSetBuilder().build(getClass().getClassLoader().getResourceAsStream("expected-multiple-failures.xml")); + ITable expectedTable = expectedDataSet.getTable("ITEMS"); + Connection conn = getDataSource().getConnection(); + conn.createStatement().executeUpdate("INSERT INTO ITEMS (title, price) VALUES ('Battery', '1000000')"); + ITable actualData = getConnection().createDataSet().getTable("ITEMS"); + DiffCollectingFailureHandler collectingHandler = new DiffCollectingFailureHandler(); + Assertion.assertEquals(expectedTable, actualData, collectingHandler); + if (!collectingHandler.getDiffList().isEmpty()) { + String message = (String) collectingHandler.getDiffList().stream().map(d -> formatDifference((Difference) d)).collect(joining("\n")); +// throw new AssertionError(message); + } + } + + private static String formatDifference(Difference diff) { + return "expected value in " + diff.getExpectedTable().getTableMetaData().getTableName() + "." + diff.getColumnName() + " row " + diff.getRowIndex() + ":" + diff.getExpectedValue() + ", but was: " + diff.getActualValue(); + } } diff --git a/dbunit/src/test/java/com/baeldung/dbunit/DbUnitTest.java b/dbunit/src/test/java/com/baeldung/dbunit/DbUnitTest.java index 479ea3dd51..1dee5afb28 100644 --- a/dbunit/src/test/java/com/baeldung/dbunit/DbUnitTest.java +++ b/dbunit/src/test/java/com/baeldung/dbunit/DbUnitTest.java @@ -42,7 +42,7 @@ public class DbUnitTest extends DBTestCase { @Override protected DatabaseOperation getTearDownOperation() { - return DatabaseOperation.NONE; + return DatabaseOperation.DELETE_ALL; } @Test diff --git a/dbunit/src/test/java/com/baeldung/dbunit/OldSchoolDbUnitTest.java b/dbunit/src/test/java/com/baeldung/dbunit/OldSchoolDbUnitTest.java index 0b63184951..3b46feb304 100644 --- a/dbunit/src/test/java/com/baeldung/dbunit/OldSchoolDbUnitTest.java +++ b/dbunit/src/test/java/com/baeldung/dbunit/OldSchoolDbUnitTest.java @@ -1,5 +1,6 @@ package com.baeldung.dbunit; +import org.dbunit.Assertion; import org.dbunit.IDatabaseTester; import org.dbunit.JdbcDatabaseTester; import org.dbunit.dataset.IDataSet; @@ -36,7 +37,7 @@ public class OldSchoolDbUnitTest { final JdbcDatabaseTester tester = new JdbcDatabaseTester(JDBC_DRIVER, JDBC_URL, USER, PASSWORD); tester.setDataSet(initDataSet()); tester.setSetUpOperation(DatabaseOperation.REFRESH); - tester.setTearDownOperation(DatabaseOperation.NONE); + tester.setTearDownOperation(DatabaseOperation.DELETE_ALL); return tester; } @@ -65,6 +66,22 @@ public class OldSchoolDbUnitTest { assertThat(rs.getString("title")).isEqualTo("Grey T-Shirt"); } + @Test + public void testIgnoringProduced() throws Exception { + final Connection connection = tester.getConnection().getConnection(); + final String[] excludedColumns = {"id", "produced"}; + final IDataSet expectedDataSet = new FlatXmlDataSetBuilder().build(getClass().getClassLoader() + .getResourceAsStream("expected-ignoring-registered_at.xml")); + final ITable expectedTable = DefaultColumnFilter.excludedColumnsTable(expectedDataSet.getTable("ITEMS"), excludedColumns); + + connection.createStatement().executeUpdate("INSERT INTO ITEMS (title, price, produced) VALUES('Necklace', 199.99, now())"); + + final IDataSet databaseDataSet = tester.getConnection().createDataSet(); + final ITable actualTable = DefaultColumnFilter.excludedColumnsTable(databaseDataSet.getTable("ITEMS"), excludedColumns); + + Assertion.assertEquals(expectedTable, actualTable); + } + @Test public void testDelete() throws Exception { final Connection connection = tester.getConnection().getConnection(); diff --git a/dbunit/src/test/resources/data.xml b/dbunit/src/test/resources/data.xml index 4230073fc6..290cc36890 100644 --- a/dbunit/src/test/resources/data.xml +++ b/dbunit/src/test/resources/data.xml @@ -1,8 +1,6 @@ - - diff --git a/dbunit/src/test/resources/expected-ignoring-registered_at.xml b/dbunit/src/test/resources/expected-ignoring-registered_at.xml new file mode 100644 index 0000000000..ea57b6a961 --- /dev/null +++ b/dbunit/src/test/resources/expected-ignoring-registered_at.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/dbunit/src/test/resources/expected-multiple-failures.xml b/dbunit/src/test/resources/expected-multiple-failures.xml new file mode 100644 index 0000000000..ea57b6a961 --- /dev/null +++ b/dbunit/src/test/resources/expected-multiple-failures.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/dbunit/src/test/resources/expected-user.xml b/dbunit/src/test/resources/expected-user.xml index 379db13601..631dd84210 100644 --- a/dbunit/src/test/resources/expected-user.xml +++ b/dbunit/src/test/resources/expected-user.xml @@ -1,5 +1,4 @@ - - + \ No newline at end of file diff --git a/dbunit/src/test/resources/items.xml b/dbunit/src/test/resources/items.xml index 04a975d7ee..d13e93bbe0 100644 --- a/dbunit/src/test/resources/items.xml +++ b/dbunit/src/test/resources/items.xml @@ -1,5 +1,4 @@ - diff --git a/dbunit/src/test/resources/items_exp_delete.xml b/dbunit/src/test/resources/items_exp_delete.xml index 09b78da493..a6fa2b33e8 100644 --- a/dbunit/src/test/resources/items_exp_delete.xml +++ b/dbunit/src/test/resources/items_exp_delete.xml @@ -1,5 +1,4 @@ - diff --git a/dbunit/src/test/resources/items_exp_delete_no_produced.xml b/dbunit/src/test/resources/items_exp_delete_no_produced.xml index dd76e8c6ce..3e7f854f5f 100644 --- a/dbunit/src/test/resources/items_exp_delete_no_produced.xml +++ b/dbunit/src/test/resources/items_exp_delete_no_produced.xml @@ -1,5 +1,4 @@ - diff --git a/dbunit/src/test/resources/items_exp_rename.xml b/dbunit/src/test/resources/items_exp_rename.xml index 830d83499f..32f1d57cf6 100644 --- a/dbunit/src/test/resources/items_exp_rename.xml +++ b/dbunit/src/test/resources/items_exp_rename.xml @@ -1,5 +1,4 @@ - diff --git a/dbunit/src/test/resources/items_exp_rename_no_produced.xml b/dbunit/src/test/resources/items_exp_rename_no_produced.xml index 991c4726a0..b42d3804fa 100644 --- a/dbunit/src/test/resources/items_exp_rename_no_produced.xml +++ b/dbunit/src/test/resources/items_exp_rename_no_produced.xml @@ -1,5 +1,4 @@ - diff --git a/dbunit/src/test/resources/users.xml b/dbunit/src/test/resources/users.xml index 9c14435362..9ac3909bc5 100644 --- a/dbunit/src/test/resources/users.xml +++ b/dbunit/src/test/resources/users.xml @@ -1,5 +1,4 @@ - diff --git a/dbunit/src/test/resources/users_exp_delete.xml b/dbunit/src/test/resources/users_exp_delete.xml index 3780c00c4c..2fe97ae6f6 100644 --- a/dbunit/src/test/resources/users_exp_delete.xml +++ b/dbunit/src/test/resources/users_exp_delete.xml @@ -1,5 +1,4 @@ - diff --git a/dbunit/src/test/resources/users_exp_rename.xml b/dbunit/src/test/resources/users_exp_rename.xml index a576cc9e80..95682118bb 100644 --- a/dbunit/src/test/resources/users_exp_rename.xml +++ b/dbunit/src/test/resources/users_exp_rename.xml @@ -1,5 +1,4 @@ -