datasource-assert
datasource-assert
provides assertion API for DataSource to validate query executions.
The assertion API is used for assertion methods such as assertEquals
in JUnit and TestNG. Also, it comes with support for assertThat
in AssertJ and Hamcrest.
Artifacts
Released Version
<dependency>
<groupId>net.ttddyy</groupId>
<artifactId>datasource-assert</artifactId>
<version>[LATEST_VERSION]</version>
</dependency>
Documentation
- User Guide
- Javadoc
How to use
Wrap your datasource with ProxyTestDataSource
.
@Test
public void myTest() {
ProxyTestDataSource ds = new ProxyTestDataSource(actualDataSource);
// rest of test
}
If you want to reuse the same ProxyTestDataSource
instance, you could reset()
it between tests.
@After // @AfterEach, @AfterMethod
public void tearDown() {
this.ds.reset();
}
Regular assertions
For normal assertions such as JUnit/TestNG assertEquals
, use methods from ProxyTestDataSource
.
assertEquals(3, ds.getQueryExecutions().size());
PreparedExecution pe = ds.getFirstPrepared();
assertTrue(pe.isSuccess());
See more details on "Usage examples".
AssertJ
Static import assertThat
from DataSourceAssertAssertions
.
import static net.ttddyy.dsproxy.asserts.assertj.DataSourceAssertAssertions.assertThat;
assertThat(ds.getQueryExecutions()).hasSize(1);
assertThat(ds.getQueryExecutions().get(0)).isStatement().asStatement().query().isEqualTo("SELECT id FROM emp");
assertThat(ds.getFirstPrepared()).containsParam(1, "foo");
See more details on "Usage examples".
Hamcrest
Use matchers from DataSourceAssertMatchers
.
assertThat(ds, statementCount(3));
assertThat(ds, executions(1, is(statement())));
assertThat((StatementExecution) statements.get(0), query(is("SELECT id FROM emp")));
assertThat(ds.getFirstPrepared(), paramAsInteger(1, is(100)));
See more details on "Usage examples".