diff --git a/dbunit/README.md b/dbunit/README.md
index 383bd6fb7e..333cac9439 100644
--- a/dbunit/README.md
+++ b/dbunit/README.md
@@ -1,6 +1,4 @@
### Database schema
-
-
### Relevant Articles:
- [Introduction To DBUnit](https://www.baeldung.com/dbunit)
diff --git a/dbunit/docs/db_schema.png b/dbunit/docs/db_schema.png
deleted file mode 100644
index d9185bacd2..0000000000
Binary files a/dbunit/docs/db_schema.png and /dev/null differ
diff --git a/dbunit/src/test/java/com/baeldung/dbunit/DataSourceDBUnitTest.java b/dbunit/src/test/java/com/baeldung/dbunit/DataSourceDBUnitTest.java
index 7482f38535..606f1a90a3 100644
--- a/dbunit/src/test/java/com/baeldung/dbunit/DataSourceDBUnitTest.java
+++ b/dbunit/src/test/java/com/baeldung/dbunit/DataSourceDBUnitTest.java
@@ -12,8 +12,11 @@ import org.h2.jdbcx.JdbcDataSource;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.platform.commons.logging.Logger;
+import org.junit.platform.commons.logging.LoggerFactory;
import javax.sql.DataSource;
+import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -24,6 +27,8 @@ import static org.assertj.core.api.Assertions.assertThat;
public class DataSourceDBUnitTest extends DataSourceBasedDBTestCase {
+ private static Logger logger = LoggerFactory.getLogger(DataSourceDBUnitTest.class);
+
@Override
protected DataSource getDataSource() {
JdbcDataSource dataSource = new JdbcDataSource();
@@ -35,9 +40,11 @@ public class DataSourceDBUnitTest extends DataSourceBasedDBTestCase {
@Override
protected IDataSet getDataSet() throws Exception {
- return new FlatXmlDataSetBuilder().build(getClass()
+ try (InputStream resourceAsStream = getClass()
.getClassLoader()
- .getResourceAsStream("data.xml"));
+ .getResourceAsStream("data.xml")) {
+ return new FlatXmlDataSetBuilder().build(resourceAsStream);
+ }
}
@Override
@@ -76,42 +83,52 @@ public class DataSourceDBUnitTest extends DataSourceBasedDBTestCase {
@Test
public void testEmptySchema() throws Exception {
- IDataSet expectedDataSet = getDataSet();
- ITable expectedTable = expectedDataSet.getTable("CLIENTS");
- IDataSet databaseDataSet = getConnection().createDataSet();
- ITable actualTable = databaseDataSet.getTable("CLIENTS");
+ final IDataSet expectedDataSet = getDataSet();
+ final ITable expectedTable = expectedDataSet.getTable("CLIENTS");
+ final IDataSet databaseDataSet = getConnection().createDataSet();
+ final ITable actualTable = databaseDataSet.getTable("CLIENTS");
Assertion.assertEquals(expectedTable, actualTable);
}
@Test
public void testAssertByQuery() throws Exception {
- IDataSet expectedDataSet = new FlatXmlDataSetBuilder().build(getClass()
+ try (final InputStream is = getClass()
.getClassLoader()
- .getResourceAsStream("expected-user.xml"));
- ITable expectedTable = expectedDataSet.getTable("CLIENTS");
- Connection conn = getDataSource().getConnection();
- conn.createStatement()
- .executeUpdate(
- "INSERT INTO CLIENTS (first_name, last_name) VALUES ('John', 'Jansen')");
- ITable actualData = getConnection()
- .createQueryTable(
- "result_name",
- "SELECT * FROM CLIENTS WHERE last_name='Jansen'");
- Assertion.assertEqualsIgnoreCols(expectedTable, actualData, new String[]{"id"});
+ .getResourceAsStream("expected-user.xml")) {
+ final IDataSet expectedDataSet = new FlatXmlDataSetBuilder().build(is);
+ final ITable expectedTable = expectedDataSet.getTable("CLIENTS");
+ final Connection conn = getDataSource().getConnection();
+
+ conn.createStatement()
+ .executeUpdate(
+ "INSERT INTO CLIENTS (first_name, last_name) VALUES ('John', 'Jansen')");
+ final ITable actualData = getConnection()
+ .createQueryTable(
+ "result_name",
+ "SELECT * FROM CLIENTS WHERE last_name='Jansen'");
+
+ Assertion.assertEqualsIgnoreCols(expectedTable, actualData, new String[]{"id"});
+ }
}
- @Test(expected = AssertionError.class)
+ @Test
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);
+ try (final InputStream is = getClass()
+ .getClassLoader()
+ .getResourceAsStream("expected-multiple-failures.xml")) {
+ final IDataSet expectedDataSet = new FlatXmlDataSetBuilder().build(is);
+ final ITable expectedTable = expectedDataSet.getTable("ITEMS");
+ final Connection conn = getDataSource().getConnection();
+ final DiffCollectingFailureHandler collectingHandler = new DiffCollectingFailureHandler();
+
+ conn.createStatement().executeUpdate("INSERT INTO ITEMS (title, price) VALUES ('Battery', '1000000')");
+ final ITable actualData = getConnection().createDataSet().getTable("ITEMS");
+
+ Assertion.assertEquals(expectedTable, actualData, collectingHandler);
+ if (!collectingHandler.getDiffList().isEmpty()) {
+ String message = (String) collectingHandler.getDiffList().stream().map(d -> formatDifference((Difference) d)).collect(joining("\n"));
+ logger.error(() -> message);
+ }
}
}
diff --git a/dbunit/src/test/java/com/baeldung/dbunit/DbUnitTest.java b/dbunit/src/test/java/com/baeldung/dbunit/DbUnitTest.java
index 1dee5afb28..d24410bedf 100644
--- a/dbunit/src/test/java/com/baeldung/dbunit/DbUnitTest.java
+++ b/dbunit/src/test/java/com/baeldung/dbunit/DbUnitTest.java
@@ -31,8 +31,9 @@ public class DbUnitTest extends DBTestCase {
@Override
protected IDataSet getDataSet() throws Exception {
- final InputStream is = DbUnitTest.class.getClassLoader().getResourceAsStream("data.xml");
- return new FlatXmlDataSetBuilder().build(is);
+ try (final InputStream is = DbUnitTest.class.getClassLoader().getResourceAsStream("data.xml")) {
+ return new FlatXmlDataSetBuilder().build(is);
+ }
}
@Override
@@ -52,37 +53,39 @@ public class DbUnitTest extends DBTestCase {
final ResultSet rs = connection.createStatement().executeQuery("select * from iTEMS where id = 1");
assertThat(rs.next()).isTrue();
- assertThat(rs.getString( "title")).isEqualTo("Grey T-Shirt");
+ assertThat(rs.getString("title")).isEqualTo("Grey T-Shirt");
}
@Test
public void testDelete() throws Exception {
final Connection connection = getConnection().getConnection();
- final InputStream is = DbUnitTest.class.getClassLoader().getResourceAsStream("items_exp_delete.xml");
- ITable expectedTable = (new FlatXmlDataSetBuilder().build(is)).getTable("items");
+ try (final InputStream is = DbUnitTest.class.getClassLoader().getResourceAsStream("items_exp_delete.xml")) {
+ ITable expectedTable = (new FlatXmlDataSetBuilder().build(is)).getTable("items");
- connection.createStatement().executeUpdate("delete from ITEMS where id = 2");
+ connection.createStatement().executeUpdate("delete from ITEMS where id = 2");
- final IDataSet databaseDataSet = getConnection().createDataSet();
- ITable actualTable = databaseDataSet.getTable("items");
+ final IDataSet databaseDataSet = getConnection().createDataSet();
+ ITable actualTable = databaseDataSet.getTable("items");
- Assertion.assertEquals(expectedTable, actualTable);
+ Assertion.assertEquals(expectedTable, actualTable);
+ }
}
@Test
public void testUpdate() throws Exception {
final Connection connection = getConnection().getConnection();
- final InputStream is = DbUnitTest.class.getClassLoader().getResourceAsStream("items_exp_rename.xml");
- ITable expectedTable = (new FlatXmlDataSetBuilder().build(is)).getTable("items");
+ try (final InputStream is = DbUnitTest.class.getClassLoader().getResourceAsStream("items_exp_rename.xml")) {
+ ITable expectedTable = (new FlatXmlDataSetBuilder().build(is)).getTable("items");
- connection.createStatement().executeUpdate("update ITEMS set title='new name' where id = 1");
+ connection.createStatement().executeUpdate("update ITEMS set title='new name' where id = 1");
- final IDataSet databaseDataSet = getConnection().createDataSet();
- ITable actualTable = databaseDataSet.getTable("items");
+ final IDataSet databaseDataSet = getConnection().createDataSet();
+ ITable actualTable = databaseDataSet.getTable("items");
- Assertion.assertEquals(expectedTable, actualTable);
+ Assertion.assertEquals(expectedTable, actualTable);
+ }
}
}
diff --git a/dbunit/src/test/java/com/baeldung/dbunit/OldSchoolDbUnitTest.java b/dbunit/src/test/java/com/baeldung/dbunit/OldSchoolDbUnitTest.java
index 3b46feb304..41d7ffd8d4 100644
--- a/dbunit/src/test/java/com/baeldung/dbunit/OldSchoolDbUnitTest.java
+++ b/dbunit/src/test/java/com/baeldung/dbunit/OldSchoolDbUnitTest.java
@@ -42,8 +42,9 @@ public class OldSchoolDbUnitTest {
}
private static IDataSet initDataSet() throws Exception {
- final InputStream is = OldSchoolDbUnitTest.class.getClassLoader().getResourceAsStream("data.xml");
- return new FlatXmlDataSetBuilder().build(is);
+ try (final InputStream is = OldSchoolDbUnitTest.class.getClassLoader().getResourceAsStream("data.xml")) {
+ return new FlatXmlDataSetBuilder().build(is);
+ }
}
@Before
@@ -70,78 +71,92 @@ public class OldSchoolDbUnitTest {
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);
+ try (final InputStream is = getClass().getClassLoader()
+ .getResourceAsStream("expected-ignoring-registered_at.xml")) {
+ final IDataSet expectedDataSet = new FlatXmlDataSetBuilder().build(is);
+ final ITable expectedTable = DefaultColumnFilter.excludedColumnsTable(expectedDataSet.getTable("ITEMS"), excludedColumns);
- connection.createStatement().executeUpdate("INSERT INTO ITEMS (title, price, produced) VALUES('Necklace', 199.99, now())");
+ 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);
+ final IDataSet databaseDataSet = tester.getConnection().createDataSet();
+ final ITable actualTable = DefaultColumnFilter.excludedColumnsTable(databaseDataSet.getTable("ITEMS"), excludedColumns);
- Assertion.assertEquals(expectedTable, actualTable);
+ Assertion.assertEquals(expectedTable, actualTable);
+ }
}
@Test
public void testDelete() throws Exception {
final Connection connection = tester.getConnection().getConnection();
- final InputStream is = OldSchoolDbUnitTest.class.getClassLoader().getResourceAsStream("items_exp_delete.xml");
- ITable expectedTable = new FlatXmlDataSetBuilder().build(is).getTable("items");
+ try (final InputStream is =
+ OldSchoolDbUnitTest.class.getClassLoader()
+ .getResourceAsStream("items_exp_delete.xml");) {
+ ITable expectedTable = new FlatXmlDataSetBuilder().build(is).getTable("items");
- connection.createStatement().executeUpdate("delete from ITEMS where id = 2");
+ connection.createStatement().executeUpdate("delete from ITEMS where id = 2");
- final IDataSet databaseDataSet = tester.getConnection().createDataSet();
- ITable actualTable = databaseDataSet.getTable("items");
+ final IDataSet databaseDataSet = tester.getConnection().createDataSet();
+ ITable actualTable = databaseDataSet.getTable("items");
- assertEquals(expectedTable, actualTable);
+ assertEquals(expectedTable, actualTable);
+ }
}
@Test
public void testDeleteWithExcludedColumns() throws Exception {
final Connection connection = tester.getConnection().getConnection();
- final InputStream is = OldSchoolDbUnitTest.class.getClassLoader().getResourceAsStream("items_exp_delete_no_produced.xml");
- ITable expectedTable = new FlatXmlDataSetBuilder().build(is).getTable("items");
+ try (final InputStream is =
+ OldSchoolDbUnitTest.class.getClassLoader()
+ .getResourceAsStream("items_exp_delete_no_produced.xml")) {
+ final ITable expectedTable = new FlatXmlDataSetBuilder().build(is).getTable("items");
- connection.createStatement().executeUpdate("delete from ITEMS where id = 2");
+ connection.createStatement().executeUpdate("delete from ITEMS where id = 2");
- final IDataSet databaseDataSet = tester.getConnection().createDataSet();
- ITable actualTable = databaseDataSet.getTable("items");
- actualTable = DefaultColumnFilter.excludedColumnsTable(actualTable, new String[]{"produced"});
+ final IDataSet databaseDataSet = tester.getConnection().createDataSet();
+ ITable actualTable = databaseDataSet.getTable("items");
+ actualTable = DefaultColumnFilter.excludedColumnsTable(actualTable, new String[]{"produced"});
- assertEquals(expectedTable, actualTable);
+ assertEquals(expectedTable, actualTable);
+ }
}
@Test
public void testUpdate() throws Exception {
final Connection connection = tester.getConnection().getConnection();
- final InputStream is = OldSchoolDbUnitTest.class.getClassLoader().getResourceAsStream("items_exp_rename.xml");
- final ITable expectedTable = new FlatXmlDataSetBuilder().build(is).getTable("items");
+ try (final InputStream is =
+ OldSchoolDbUnitTest.class.getClassLoader()
+ .getResourceAsStream("items_exp_rename.xml")) {
+ final ITable expectedTable = new FlatXmlDataSetBuilder().build(is).getTable("items");
- connection.createStatement().executeUpdate("update ITEMS set title='new name' where id = 1");
+ connection.createStatement().executeUpdate("update ITEMS set title='new name' where id = 1");
- final IDataSet databaseDataSet = tester.getConnection().createDataSet();
- ITable actualTable = databaseDataSet.getTable("items");
+ final IDataSet databaseDataSet = tester.getConnection().createDataSet();
+ ITable actualTable = databaseDataSet.getTable("items");
- assertEquals(expectedTable, actualTable);
+ assertEquals(expectedTable, actualTable);
+ }
}
@Test
public void testUpdateWithExcludedColumns() throws Exception {
final Connection connection = tester.getConnection().getConnection();
- final InputStream is = OldSchoolDbUnitTest.class.getClassLoader().getResourceAsStream("items_exp_rename_no_produced.xml");
- ITable expectedTable = new FlatXmlDataSetBuilder().build(is).getTable("items");
+ try (final InputStream is =
+ OldSchoolDbUnitTest.class.getClassLoader()
+ .getResourceAsStream("items_exp_rename_no_produced.xml")) {
+ ITable expectedTable = new FlatXmlDataSetBuilder().build(is).getTable("items");
- connection.createStatement().executeUpdate("update ITEMS set title='new name' where id = 1");
+ connection.createStatement().executeUpdate("update ITEMS set title='new name' where id = 1");
- final IDataSet databaseDataSet = tester.getConnection().createDataSet();
- ITable actualTable = databaseDataSet.getTable("items");
- actualTable = DefaultColumnFilter.excludedColumnsTable(actualTable, new String[]{"produced"});
+ final IDataSet databaseDataSet = tester.getConnection().createDataSet();
+ ITable actualTable = databaseDataSet.getTable("items");
+ actualTable = DefaultColumnFilter.excludedColumnsTable(actualTable, new String[]{"produced"});
- assertEquals(expectedTable, actualTable);
+ assertEquals(expectedTable, actualTable);
+ }
}
}
diff --git a/dbunit/src/test/java/com/baeldung/dbunit/PrepAndExpectedDbUnitTest.java b/dbunit/src/test/java/com/baeldung/dbunit/PrepAndExpectedDbUnitTest.java
index 2c7e5de508..b4e23f56ff 100644
--- a/dbunit/src/test/java/com/baeldung/dbunit/PrepAndExpectedDbUnitTest.java
+++ b/dbunit/src/test/java/com/baeldung/dbunit/PrepAndExpectedDbUnitTest.java
@@ -39,8 +39,9 @@ public class PrepAndExpectedDbUnitTest extends DefaultPrepAndExpectedTestCase {
}
private IDataSet initDataSet() throws Exception {
- final InputStream is = getClass().getClassLoader().getResourceAsStream("data.xml");
- return new FlatXmlDataSetBuilder().build(is);
+ try (final InputStream is = getClass().getClassLoader().getResourceAsStream("data.xml")) {
+ return new FlatXmlDataSetBuilder().build(is);
+ }
}
private DataFileLoader initDataFileLoader() {
@@ -53,10 +54,8 @@ public class PrepAndExpectedDbUnitTest extends DefaultPrepAndExpectedTestCase {
final VerifyTableDefinition[] verifyTables = {new VerifyTableDefinition("CLIENTS", new String[]{})};
final String[] prepDataFiles = {"/users.xml"};
final String[] expectedDataFiles = {"/users.xml"};
- final PrepAndExpectedTestCaseSteps testSteps =
- () -> connection
- .createStatement()
- .executeQuery("select * from CLIENTS where id = 1");
+ final PrepAndExpectedTestCaseSteps testSteps = () -> connection.createStatement()
+ .executeQuery("select * from CLIENTS where id = 1");
final ResultSet rs = (ResultSet) super.runTest(verifyTables, prepDataFiles, expectedDataFiles, testSteps);
@@ -70,10 +69,8 @@ public class PrepAndExpectedDbUnitTest extends DefaultPrepAndExpectedTestCase {
final VerifyTableDefinition[] verifyTables = {new VerifyTableDefinition("CLIENTS", new String[]{})}; // define tables to verify
final String[] prepDataFiles = {"/users.xml"};
final String[] expectedDataFiles = {"/users_exp_rename.xml"};
- final PrepAndExpectedTestCaseSteps testSteps =
- () -> connection
- .createStatement()
- .executeUpdate("update CLIENTS set first_name = 'new name' where id = 1");
+ final PrepAndExpectedTestCaseSteps testSteps = () -> connection.createStatement()
+ .executeUpdate("update CLIENTS set first_name = 'new name' where id = 1");
super.runTest(verifyTables, prepDataFiles, expectedDataFiles, testSteps);
}
@@ -84,10 +81,8 @@ public class PrepAndExpectedDbUnitTest extends DefaultPrepAndExpectedTestCase {
final VerifyTableDefinition[] verifyTables = {new VerifyTableDefinition("CLIENTS", new String[]{})};
final String[] prepDataFiles = {"/users.xml"};
final String[] expectedDataFiles = {"/users_exp_delete.xml"};
- final PrepAndExpectedTestCaseSteps testSteps =
- () -> connection
- .createStatement()
- .executeUpdate("delete from CLIENTS where id = 2");
+ final PrepAndExpectedTestCaseSteps testSteps = () -> connection.createStatement()
+ .executeUpdate("delete from CLIENTS where id = 2");
super.runTest(verifyTables, prepDataFiles, expectedDataFiles, testSteps);
}
diff --git a/libraries-testing/pom.xml b/libraries-testing/pom.xml
index 3ffbb291a0..c4d2786441 100644
--- a/libraries-testing/pom.xml
+++ b/libraries-testing/pom.xml
@@ -130,6 +130,27 @@