package ch.sla.jdbcperflogger.console.db; import static java.util.UUID.randomUUID; import static org.eclipse.jdt.annotation.DefaultLocation.PARAMETER; import static org.eclipse.jdt.annotation.DefaultLocation.RETURN_TYPE; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Date; import java.util.Properties; import org.eclipse.jdt.annotation.NonNullByDefault; import org.junit.After; import org.junit.Before; import ch.sla.jdbcperflogger.StatementType; import ch.sla.jdbcperflogger.model.ConnectionInfo; import ch.sla.jdbcperflogger.model.StatementLog; @NonNullByDefault({ PARAMETER, RETURN_TYPE }) public class AbstractLogRepositoryTest { protected LogRepositoryUpdateJdbc repositoryUpdate; protected LogRepositoryRead repositoryRead; @Before public void setup() { repositoryUpdate = new LogRepositoryUpdateJdbc("test"); repositoryRead = new LogRepositoryReadJdbc("test"); } @After public void tearDown() { repositoryUpdate.dispose(); repositoryRead.dispose(); } protected ConnectionInfo insert1Connection() { final Properties connProps = new Properties(); connProps.setProperty("myprop", "myval"); final ConnectionInfo connectionInfo = new ConnectionInfo(randomUUID(), 12, "jdbc:toto", new Date(), 12, connProps); repositoryUpdate.addConnection(connectionInfo); return connectionInfo; } protected StatementLog insert1Log(final ConnectionInfo connectionInfo) { final StatementLog log = new StatementLog(connectionInfo.getUuid(), randomUUID(), System.currentTimeMillis(), StatementType.BASE_NON_PREPARED_STMT, "myrawsql", Thread.currentThread().getName(), 123, true); repositoryUpdate.addStatementLog(log); return log; } protected StatementLog insert1Log() { final ConnectionInfo connectionInfo = insert1Connection(); return insert1Log(connectionInfo); } protected int countRowsInTable(final String table) { try (Statement stmt = repositoryUpdate.connectionUpdate.createStatement()) { try (ResultSet rset = stmt.executeQuery("select count(1) from " + table)) { rset.next(); return rset.getInt(1); } } catch (final SQLException e) { throw new RuntimeException(e); } } }