@Test
public void testQueryType() throws Exception {
try (Connection connection = DriverManager.getConnection("sniffer:jdbc:h2:mem:", "sa", "sa")) {
connection.createStatement().execute("CREATE TEMPORARY TABLE TEMPORARY_TABLE (BAZ VARCHAR(255))");
try (@SuppressWarnings("unused") Spy spy = Sniffer.expectAtMostOnce(Query.INSERT)) {
connection.createStatement().execute("INSERT INTO TEMPORARY_TABLE (BAZ) VALUES ('foo')");
connection.createStatement().execute("INSERT INTO TEMPORARY_TABLE (BAZ) VALUES (LOWER('bar'))");
connection.createStatement().execute("UPDATE TEMPORARY_TABLE SET BAZ = UPPER(BAZ)");
}
} catch (WrongNumberOfQueriesError e) {
assertNotNull(e);
assertEquals(0, e.getMinimumQueries());
assertEquals(1, e.getMaximumQueries());
assertEquals(2, e.getNumQueries());
assertEquals(3, e.getExecutedStatements().size());
assertEquals(3, e.getExecutedSqls().size());
assertEquals(Threads.CURRENT, e.getThreadMatcher());
assertEquals(SqlStatement.INSERT, e.getQuery());
assertTrue(e.getMessage().contains("INSERT INTO TEMPORARY_TABLE (BAZ) VALUES ('foo')"));
assertTrue(e.getMessage().contains("INSERT INTO TEMPORARY_TABLE (BAZ) VALUES (LOWER('bar'))"));
assertFalse(e.getMessage().contains("UPDATE TEMPORARY_TABLE SET BAZ = UPPER(BAZ)"));
}
}