commit
e60ac15806
@ -11,3 +11,4 @@ This module contains articles about test libraries.
|
|||||||
- [Introduction to Awaitlity](https://www.baeldung.com/awaitlity-testing)
|
- [Introduction to Awaitlity](https://www.baeldung.com/awaitlity-testing)
|
||||||
- [Introduction to Hoverfly in Java](https://www.baeldung.com/hoverfly)
|
- [Introduction to Hoverfly in Java](https://www.baeldung.com/hoverfly)
|
||||||
- [Testing with Hamcrest](https://www.baeldung.com/java-junit-hamcrest-guide)
|
- [Testing with Hamcrest](https://www.baeldung.com/java-junit-hamcrest-guide)
|
||||||
|
- [Introduction To DBUnit](https://www.baeldung.com/dbunit)
|
||||||
|
@ -130,6 +130,27 @@
|
|||||||
<version>${asciidoctor.version}</version>
|
<version>${asciidoctor.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dbunit</groupId>
|
||||||
|
<artifactId>dbunit</artifactId>
|
||||||
|
<version>${dbunit.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.h2database</groupId>
|
||||||
|
<artifactId>h2</artifactId>
|
||||||
|
<version>${h2.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.assertj</groupId>
|
||||||
|
<artifactId>assertj-core</artifactId>
|
||||||
|
<version>${assertj-core.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
@ -150,6 +171,16 @@
|
|||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>${maven-compiler-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<source>${maven-compiler-plugin.source}</source>
|
||||||
|
<target>${maven-compiler-plugin.target}</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
@ -166,6 +197,12 @@
|
|||||||
<spring-mock-mvc.version>4.1.1</spring-mock-mvc.version>
|
<spring-mock-mvc.version>4.1.1</spring-mock-mvc.version>
|
||||||
<assertj.version>3.6.2</assertj.version>
|
<assertj.version>3.6.2</assertj.version>
|
||||||
<java-hamcrest.version>2.0.0.0</java-hamcrest.version>
|
<java-hamcrest.version>2.0.0.0</java-hamcrest.version>
|
||||||
|
<h2.version>1.4.200</h2.version>
|
||||||
|
<dbunit.version>2.7.0</dbunit.version>
|
||||||
|
<assertj-core.version>3.14.0</assertj-core.version>
|
||||||
|
<maven-compiler-plugin.target>1.8</maven-compiler-plugin.target>
|
||||||
|
<maven-compiler-plugin.source>1.8</maven-compiler-plugin.source>
|
||||||
|
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
package com.baeldung.dbunit;
|
||||||
|
|
||||||
|
public class ConnectionSettings {
|
||||||
|
public static final String JDBC_DRIVER = org.h2.Driver.class.getName();
|
||||||
|
public static final String JDBC_URL = "jdbc:h2:mem:default;DB_CLOSE_DELAY=-1;init=runscript from 'classpath:dbunit/schema.sql'";
|
||||||
|
public static final String USER = "sa";
|
||||||
|
public static final String PASSWORD = "";
|
||||||
|
}
|
@ -0,0 +1,168 @@
|
|||||||
|
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 org.junit.platform.commons.logging.Logger;
|
||||||
|
import org.junit.platform.commons.logging.LoggerFactory;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.junit.runners.JUnit4;
|
||||||
|
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.sql.Connection;
|
||||||
|
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;
|
||||||
|
import static org.dbunit.Assertion.assertEqualsIgnoreCols;
|
||||||
|
|
||||||
|
@RunWith(JUnit4.class)
|
||||||
|
public class DataSourceDBUnitTest extends DataSourceBasedDBTestCase {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(DataSourceDBUnitTest.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected DataSource getDataSource() {
|
||||||
|
JdbcDataSource dataSource = new JdbcDataSource();
|
||||||
|
dataSource.setURL(JDBC_URL);
|
||||||
|
dataSource.setUser("sa");
|
||||||
|
dataSource.setPassword("");
|
||||||
|
return dataSource;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected IDataSet getDataSet() throws Exception {
|
||||||
|
try (InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream("dbunit/data.xml")) {
|
||||||
|
return new FlatXmlDataSetBuilder().build(resourceAsStream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@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 givenDataSet_whenSelect_thenFirstTitleIsGreyTShirt() throws SQLException {
|
||||||
|
final Connection connection = getDataSource().getConnection();
|
||||||
|
|
||||||
|
final ResultSet rs = connection.createStatement().executeQuery("select * from ITEMS where id = 1");
|
||||||
|
|
||||||
|
assertThat(rs.next()).isTrue();
|
||||||
|
assertThat(rs.getString("title")).isEqualTo("Grey T-Shirt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenDataSetEmptySchema_whenDataSetCreated_thenTablesAreEqual() throws Exception {
|
||||||
|
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 givenDataSet_whenInsert_thenTableHasNewClient() throws Exception {
|
||||||
|
try (final InputStream is = getClass().getClassLoader().getResourceAsStream("dbunit/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'");
|
||||||
|
|
||||||
|
assertEqualsIgnoreCols(expectedTable, actualData, new String[] { "id" });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenDataSet_whenDelete_thenItemIsDeleted() throws Exception {
|
||||||
|
final Connection connection = getConnection().getConnection();
|
||||||
|
|
||||||
|
try (final InputStream is = DataSourceDBUnitTest.class.getClassLoader().getResourceAsStream("dbunit/items_exp_delete.xml")) {
|
||||||
|
ITable expectedTable = (new FlatXmlDataSetBuilder().build(is)).getTable("ITEMS");
|
||||||
|
|
||||||
|
connection.createStatement().executeUpdate("delete from ITEMS where id = 2");
|
||||||
|
|
||||||
|
final IDataSet databaseDataSet = getConnection().createDataSet();
|
||||||
|
ITable actualTable = databaseDataSet.getTable("ITEMS");
|
||||||
|
|
||||||
|
Assertion.assertEquals(expectedTable, actualTable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenDataSet_whenUpdate_thenItemHasNewName() throws Exception {
|
||||||
|
final Connection connection = getConnection().getConnection();
|
||||||
|
|
||||||
|
try (final InputStream is = DataSourceDBUnitTest.class.getClassLoader().getResourceAsStream("dbunit/items_exp_rename.xml")) {
|
||||||
|
ITable expectedTable = (new FlatXmlDataSetBuilder().build(is)).getTable("ITEMS");
|
||||||
|
|
||||||
|
connection.createStatement().executeUpdate("update ITEMS set title='new name' where id = 1");
|
||||||
|
|
||||||
|
final IDataSet databaseDataSet = getConnection().createDataSet();
|
||||||
|
ITable actualTable = databaseDataSet.getTable("ITEMS");
|
||||||
|
|
||||||
|
Assertion.assertEquals(expectedTable, actualTable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenDataSet_whenInsertUnexpectedData_thenFailOnAllUnexpectedValues() throws Exception {
|
||||||
|
try (final InputStream is = getClass().getClassLoader().getResourceAsStream("dbunit/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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,159 @@
|
|||||||
|
package com.baeldung.dbunit;
|
||||||
|
|
||||||
|
import org.dbunit.Assertion;
|
||||||
|
import org.dbunit.IDatabaseTester;
|
||||||
|
import org.dbunit.JdbcDatabaseTester;
|
||||||
|
import org.dbunit.dataset.IDataSet;
|
||||||
|
import org.dbunit.dataset.ITable;
|
||||||
|
import org.dbunit.dataset.filter.DefaultColumnFilter;
|
||||||
|
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
|
||||||
|
import org.dbunit.operation.DatabaseOperation;
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.junit.runners.JUnit4;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
|
||||||
|
import static com.baeldung.dbunit.ConnectionSettings.JDBC_DRIVER;
|
||||||
|
import static com.baeldung.dbunit.ConnectionSettings.JDBC_URL;
|
||||||
|
import static com.baeldung.dbunit.ConnectionSettings.PASSWORD;
|
||||||
|
import static com.baeldung.dbunit.ConnectionSettings.USER;
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
import static org.dbunit.Assertion.assertEquals;
|
||||||
|
|
||||||
|
@RunWith(JUnit4.class)
|
||||||
|
public class OldSchoolDbUnitTest {
|
||||||
|
|
||||||
|
private static IDatabaseTester tester = null;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void setUp() throws Exception {
|
||||||
|
tester = initDatabaseTester();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IDatabaseTester initDatabaseTester() throws Exception {
|
||||||
|
final JdbcDatabaseTester tester = new JdbcDatabaseTester(JDBC_DRIVER, JDBC_URL, USER, PASSWORD);
|
||||||
|
tester.setDataSet(initDataSet());
|
||||||
|
tester.setSetUpOperation(DatabaseOperation.REFRESH);
|
||||||
|
tester.setTearDownOperation(DatabaseOperation.DELETE_ALL);
|
||||||
|
return tester;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IDataSet initDataSet() throws Exception {
|
||||||
|
try (final InputStream is = OldSchoolDbUnitTest.class.getClassLoader().getResourceAsStream("dbunit/data.xml")) {
|
||||||
|
return new FlatXmlDataSetBuilder().build(is);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() throws Exception {
|
||||||
|
tester.onSetup();
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
tester.onTearDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenDataSet_whenSelect_thenFirstTitleIsGreyTShirt() throws Exception {
|
||||||
|
final Connection connection = tester.getConnection().getConnection();
|
||||||
|
|
||||||
|
final ResultSet rs = connection.createStatement().executeQuery("select * from ITEMS where id = 1");
|
||||||
|
|
||||||
|
assertThat(rs.next()).isTrue();
|
||||||
|
assertThat(rs.getString("title")).isEqualTo("Grey T-Shirt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenDataSet_whenInsert_thenGetResultsAreStillEqualIfIgnoringColumnsWithDifferentProduced() throws Exception {
|
||||||
|
final Connection connection = tester.getConnection().getConnection();
|
||||||
|
final String[] excludedColumns = { "id", "produced" };
|
||||||
|
try (final InputStream is = getClass().getClassLoader().getResourceAsStream("dbunit/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())");
|
||||||
|
|
||||||
|
final IDataSet databaseDataSet = tester.getConnection().createDataSet();
|
||||||
|
final ITable actualTable = DefaultColumnFilter.excludedColumnsTable(
|
||||||
|
databaseDataSet.getTable("ITEMS"), excludedColumns);
|
||||||
|
|
||||||
|
Assertion.assertEquals(expectedTable, actualTable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenDataSet_whenDelete_thenItemIsRemoved() throws Exception {
|
||||||
|
final Connection connection = tester.getConnection().getConnection();
|
||||||
|
|
||||||
|
try (final InputStream is = OldSchoolDbUnitTest.class.getClassLoader().getResourceAsStream("dbunit/items_exp_delete.xml")) {
|
||||||
|
ITable expectedTable = new FlatXmlDataSetBuilder().build(is).getTable("ITEMS");
|
||||||
|
|
||||||
|
connection.createStatement().executeUpdate("delete from ITEMS where id = 2");
|
||||||
|
|
||||||
|
final IDataSet databaseDataSet = tester.getConnection().createDataSet();
|
||||||
|
ITable actualTable = databaseDataSet.getTable("ITEMS");
|
||||||
|
|
||||||
|
assertEquals(expectedTable, actualTable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenDataSet_whenDelete_thenItemIsRemovedAndResultsEqualIfProducedIsIgnored() throws Exception {
|
||||||
|
final Connection connection = tester.getConnection().getConnection();
|
||||||
|
|
||||||
|
try (final InputStream is = OldSchoolDbUnitTest.class.getClassLoader().getResourceAsStream("dbunit/items_exp_delete_no_produced.xml")) {
|
||||||
|
final ITable expectedTable = new FlatXmlDataSetBuilder().build(is).getTable("ITEMS");
|
||||||
|
|
||||||
|
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" });
|
||||||
|
|
||||||
|
assertEquals(expectedTable, actualTable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenDataSet_whenUpdate_thenItemHasNewName() throws Exception {
|
||||||
|
final Connection connection = tester.getConnection().getConnection();
|
||||||
|
|
||||||
|
try (final InputStream is = OldSchoolDbUnitTest.class.getClassLoader().getResourceAsStream("dbunit/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");
|
||||||
|
|
||||||
|
final IDataSet databaseDataSet = tester.getConnection().createDataSet();
|
||||||
|
ITable actualTable = databaseDataSet.getTable("ITEMS");
|
||||||
|
|
||||||
|
assertEquals(expectedTable, actualTable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenDataSet_whenUpdateWithNoProduced_thenItemHasNewName() throws Exception {
|
||||||
|
final Connection connection = tester.getConnection().getConnection();
|
||||||
|
|
||||||
|
try (final InputStream is = OldSchoolDbUnitTest.class.getClassLoader().getResourceAsStream("dbunit/items_exp_rename_no_produced.xml")) {
|
||||||
|
ITable expectedTable = new FlatXmlDataSetBuilder().build(is).getTable("ITEMS");
|
||||||
|
expectedTable = DefaultColumnFilter.excludedColumnsTable(expectedTable, new String[] { "produced" });
|
||||||
|
|
||||||
|
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" });
|
||||||
|
assertEquals(expectedTable, actualTable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -78,10 +78,10 @@ public class JsonAssertUnitTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenArray_whenComparing_thenOrderMustMatchForStrict() throws JSONException {
|
public void givenArray_whenComparing_thenOrderMustMatchForStrict() throws JSONException {
|
||||||
String result = "[Alex, Barbera, Charlie, Xavier]";
|
String result = "[Alex, Barbera, Charlie, Wolf]";
|
||||||
JSONAssert.assertEquals("[Charlie, Alex, Xavier, Barbera]", result, JSONCompareMode.LENIENT);
|
JSONAssert.assertEquals("[Charlie, Alex, Wolf, Barbera]", result, JSONCompareMode.LENIENT);
|
||||||
JSONAssert.assertEquals("[Alex, Barbera, Charlie, Xavier]", result, JSONCompareMode.STRICT);
|
JSONAssert.assertEquals("[Alex, Barbera, Charlie, Wolf]", result, JSONCompareMode.STRICT);
|
||||||
JSONAssert.assertNotEquals("[Charlie, Alex, Xavier, Barbera]", result, JSONCompareMode.STRICT);
|
JSONAssert.assertNotEquals("[Charlie, Alex, Wolf, Barbera]", result, JSONCompareMode.STRICT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -94,7 +94,7 @@ public class JsonAssertUnitTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void whenComparingSizeOfArray_thenPass() throws JSONException {
|
public void whenComparingSizeOfArray_thenPass() throws JSONException {
|
||||||
String names = "{names:[Alex, Barbera, Charlie, Xavier]}";
|
String names = "{names:[Alex, Barbera, Charlie, Wolf]}";
|
||||||
JSONAssert.assertEquals("{names:[4]}", names, new ArraySizeComparator(JSONCompareMode.LENIENT));
|
JSONAssert.assertEquals("{names:[4]}", names, new ArraySizeComparator(JSONCompareMode.LENIENT));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
9
libraries-testing/src/test/resources/dbunit/data.xml
Normal file
9
libraries-testing/src/test/resources/dbunit/data.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<dataset>
|
||||||
|
<CLIENTS id='1' first_name='Charles' last_name='Wolf'/>
|
||||||
|
<ITEMS id='1' title='Grey T-Shirt' price='17.99' produced='2019-03-20'/>
|
||||||
|
<ITEMS id='2' title='Fitted Hat' price='29.99' produced='2019-03-21'/>
|
||||||
|
<ITEMS id='3' title='Backpack' price='54.99' produced='2019-03-22'/>
|
||||||
|
<ITEMS id='4' title='Earrings' price='14.99' produced='2019-03-23'/>
|
||||||
|
<ITEMS id='5' title='Socks' price='9.99'/>
|
||||||
|
</dataset>
|
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<dataset>
|
||||||
|
<ITEMS id='1' title='Grey T-Shirt' price='17.99' produced='2019-03-20'/>
|
||||||
|
<ITEMS id='2' title='Fitted Hat' price='29.99' produced='2019-03-21'/>
|
||||||
|
<ITEMS id='3' title='Backpack' price='54.99' produced='2019-03-22'/>
|
||||||
|
<ITEMS id='4' title='Earrings' price='14.99' produced='2019-03-23'/>
|
||||||
|
<ITEMS id='5' title='Socks' price='9.99'/>
|
||||||
|
<ITEMS id='6' title='Necklace' price='199.99' produced='2019-03-23'/>
|
||||||
|
</dataset>
|
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<dataset>
|
||||||
|
<ITEMS id='1' title='Grey T-Shirt' price='17.99' produced='2019-03-20'/>
|
||||||
|
<ITEMS id='2' title='Fitted Hat' price='29.99' produced='2019-03-21'/>
|
||||||
|
<ITEMS id='3' title='Backpack' price='54.99' produced='2019-03-22'/>
|
||||||
|
<ITEMS id='4' title='Earrings' price='14.99' produced='2019-03-23'/>
|
||||||
|
<ITEMS id='5' title='Socks' price='9.99'/>
|
||||||
|
<ITEMS id='6' title='Necklace' price='199.99' produced='2019-03-23'/>
|
||||||
|
</dataset>
|
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<dataset>
|
||||||
|
<CLIENTS id='2' first_name='John' last_name='Jansen'/>
|
||||||
|
</dataset>
|
8
libraries-testing/src/test/resources/dbunit/items.xml
Normal file
8
libraries-testing/src/test/resources/dbunit/items.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<dataset>
|
||||||
|
<ITEMS id='1' title='Grey T-Shirt' price='17.99' produced='2019-03-20'/>
|
||||||
|
<ITEMS id='2' title='Fitted Hat' price='29.99' produced='2019-03-21'/>
|
||||||
|
<ITEMS id='3' title='Backpack' price='54.99' produced='2019-03-22'/>
|
||||||
|
<ITEMS id='4' title='Earrings' price='14.99' produced='2019-03-23'/>
|
||||||
|
<ITEMS id='5' title='Socks' price='9.99'/>
|
||||||
|
</dataset>
|
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<dataset>
|
||||||
|
<ITEMS id='1' title='Grey T-Shirt' price='17.99' produced='2019-03-20'/>
|
||||||
|
<ITEMS id='3' title='Backpack' price='54.99' produced='2019-03-22'/>
|
||||||
|
<ITEMS id='4' title='Earrings' price='14.99' produced='2019-03-23'/>
|
||||||
|
<ITEMS id='5' title='Socks' price='9.99'/>
|
||||||
|
</dataset>
|
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<dataset>
|
||||||
|
<ITEMS id='1' title='Grey T-Shirt' price='17.99'/>
|
||||||
|
<ITEMS id='3' title='Backpack' price='54.99'/>
|
||||||
|
<ITEMS id='4' title='Earrings' price='14.99'/>
|
||||||
|
<ITEMS id='5' title='Socks' price='9.99'/>
|
||||||
|
</dataset>
|
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<dataset>
|
||||||
|
<ITEMS id='1' title='new name' price='17.99' produced='2019-03-20'/>
|
||||||
|
<ITEMS id='2' title='Fitted Hat' price='29.99' produced='2019-03-21'/>
|
||||||
|
<ITEMS id='3' title='Backpack' price='54.99' produced='2019-03-22'/>
|
||||||
|
<ITEMS id='4' title='Earrings' price='14.99' produced='2019-03-23'/>
|
||||||
|
<ITEMS id='5' title='Socks' price='9.99'/>
|
||||||
|
</dataset>
|
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<dataset>
|
||||||
|
<ITEMS id='1' title='new name' price='17.99' produced='2019-03-20'/>
|
||||||
|
<ITEMS id='2' title='Fitted Hat' price='29.99'/>
|
||||||
|
<ITEMS id='3' title='Backpack' price='54.99'/>
|
||||||
|
<ITEMS id='4' title='Earrings' price='14.99'/>
|
||||||
|
<ITEMS id='5' title='Socks' price='9.99'/>
|
||||||
|
</dataset>
|
28
libraries-testing/src/test/resources/dbunit/schema.sql
Normal file
28
libraries-testing/src/test/resources/dbunit/schema.sql
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS CLIENTS
|
||||||
|
(
|
||||||
|
`id` int AUTO_INCREMENT NOT NULL,
|
||||||
|
`first_name` varchar(100) NOT NULL,
|
||||||
|
`last_name` varchar(100) NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS ITEMS
|
||||||
|
(
|
||||||
|
`id` int AUTO_INCREMENT NOT NULL,
|
||||||
|
`title` varchar(100) NOT NULL,
|
||||||
|
`produced` date,
|
||||||
|
`price` float,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS PURCHASES
|
||||||
|
(
|
||||||
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
|
`id_user` int NOT NULL,
|
||||||
|
`id_item` int NOT NULL,
|
||||||
|
`total_price` float NOT NULL,
|
||||||
|
`quantity` int(11) NOT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
FOREIGN KEY (`id_user`) REFERENCES CLIENTS (`id`) ON DELETE CASCADE,
|
||||||
|
FOREIGN KEY (`id_item`) REFERENCES ITEMS (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
);
|
6
libraries-testing/src/test/resources/dbunit/users.xml
Normal file
6
libraries-testing/src/test/resources/dbunit/users.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<dataset>
|
||||||
|
<CLIENTS id='1' first_name='Charles' last_name='Wolf'/>
|
||||||
|
<CLIENTS id='2' first_name='Scott' last_name='Summers'/>
|
||||||
|
<CLIENTS id='3' first_name='Jean' last_name='Grey'/>
|
||||||
|
</dataset>
|
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<dataset>
|
||||||
|
<CLIENTS id='1' first_name='Charles' last_name='Wolf'/>
|
||||||
|
<CLIENTS id='3' first_name='Jean' last_name='Grey'/>
|
||||||
|
</dataset>
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<dataset>
|
||||||
|
<CLIENTS id='1' first_name='new name' last_name='Wolf'/>
|
||||||
|
<CLIENTS id='2' first_name='Scott' last_name='Summers'/>
|
||||||
|
<CLIENTS id='3' first_name='Jean' last_name='Grey'/>
|
||||||
|
</dataset>
|
Loading…
x
Reference in New Issue
Block a user