// Path: src/main/java/io/github/tjheslin1/patterdale/config/RuntimeParameters.java
// public interface RuntimeParameters {
//     int httpPort();
//     long cacheDuration();
//     int probeConnectionWaitInSeconds();
//     List<DatabaseDefinition> databases();
//     List<Probe> probes();
//     int connectionPoolMaxSize();
//     int connectionPoolMinIdle();
//     int maxConnectionRetries();
//     long connectionRetryDelayInSeconds();
// }
// 
// Path: src/main/java/io/github/tjheslin1/patterdale/database/DBConnection.java
// public interface DBConnection {
//     Connection connection() throws SQLException;
// }
// 
// Path: src/main/java/io/github/tjheslin1/patterdale/database/DBConnectionPool.java
// public interface DBConnectionPool {
//     DBConnection pool();
// }
// 
// Path: src/test/java/testutil/WithMockito.java
// public interface WithMockito {
// 
//     default <T> T mock(Class<T> classToMock) {
//         return Mockito.mock(classToMock);
//     }
// 
//     default <T> OngoingStubbing<T> when(T methodCall) {
//         return Mockito.when(methodCall);
//     }
// 
//     default <T> T any() {
//         return Mockito.any();
//     }
// 
//     default Long anyLong() {
//         return Mockito.anyLong();
//     }
// 
//     default <T> T eq(T t) {
//         return Mockito.eq(t);
//     }
// 
//     default <T> T verify(T mock) {
//         return Mockito.verify(mock);
//     }
// 
//     default <T> T verify(T mock, VerificationMode mode) {
//         return Mockito.verify(mock, mode);
//     }
// 
//     default void verifyNoMoreInteractions(Object... mocks) {
//         Mockito.verifyNoMoreInteractions(mocks);
//     }
// }
// 
// Path: src/main/java/io/github/tjheslin1/patterdale/metrics/probe/Probe.java
// public static Probe probe(String name, String query, String type, String metricName, String metricLabels) {
//     Probe probe = new Probe();
//     probe.name = name;
//     probe.query = query;
//     probe.type = type;
//     probe.metricName = metricName;
//     probe.metricLabels = metricLabels;
// 
//     return probe;
// }


import io.github.tjheslin1.patterdale.config.RuntimeParameters;
import io.github.tjheslin1.patterdale.database.DBConnection;
import io.github.tjheslin1.patterdale.database.DBConnectionPool;
import org.assertj.core.api.WithAssertions;
import org.junit.Test;
import org.slf4j.Logger;
import testutil.WithMockito;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.List;
import java.util.concurrent.Future;
import java.util.concurrent.TimeoutException;
import static io.github.tjheslin1.patterdale.metrics.probe.Probe.probe;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
import static java.util.concurrent.TimeUnit.SECONDS;
package io.github.tjheslin1.patterdale.metrics.probe;




public class ListOracleSQLProbeTest implements WithAssertions, WithMockito {

    private static final Probe PROBE = probe("name", "SQL", "exists", "name", "label");

    private final ResultSet resultSet = mock(ResultSet.class);
    private final ResultSetMetaData resultSetMetaData = mock(ResultSetMetaData.class);
    private final PreparedStatement preparedStatement = mock(PreparedStatement.class);
    private final Connection connection = mock(Connection.class);
// Path: src/main/java/io/github/tjheslin1/patterdale/config/RuntimeParameters.java
// public interface RuntimeParameters {
//     int httpPort();
//     long cacheDuration();
//     int probeConnectionWaitInSeconds();
//     List<DatabaseDefinition> databases();
//     List<Probe> probes();
//     int connectionPoolMaxSize();
//     int connectionPoolMinIdle();
//     int maxConnectionRetries();
//     long connectionRetryDelayInSeconds();
// }
// 
// Path: src/main/java/io/github/tjheslin1/patterdale/database/DBConnection.java
// public interface DBConnection {
//     Connection connection() throws SQLException;
// }
// 
// Path: src/main/java/io/github/tjheslin1/patterdale/database/DBConnectionPool.java
// public interface DBConnectionPool {
//     DBConnection pool();
// }
// 
// Path: src/test/java/testutil/WithMockito.java
// public interface WithMockito {
// 
//     default <T> T mock(Class<T> classToMock) {
//         return Mockito.mock(classToMock);
//     }
// 
//     default <T> OngoingStubbing<T> when(T methodCall) {
//         return Mockito.when(methodCall);
//     }
// 
//     default <T> T any() {
//         return Mockito.any();
//     }
// 
//     default Long anyLong() {
//         return Mockito.anyLong();
//     }
// 
//     default <T> T eq(T t) {
//         return Mockito.eq(t);
//     }
// 
//     default <T> T verify(T mock) {
//         return Mockito.verify(mock);
//     }
// 
//     default <T> T verify(T mock, VerificationMode mode) {
//         return Mockito.verify(mock, mode);
//     }
// 
//     default void verifyNoMoreInteractions(Object... mocks) {
//         Mockito.verifyNoMoreInteractions(mocks);
//     }
// }
// 
// Path: src/main/java/io/github/tjheslin1/patterdale/metrics/probe/Probe.java
// public static Probe probe(String name, String query, String type, String metricName, String metricLabels) {
//     Probe probe = new Probe();
//     probe.name = name;
//     probe.query = query;
//     probe.type = type;
//     probe.metricName = metricName;
//     probe.metricLabels = metricLabels;
// 
//     return probe;
// }


// Path: src/test/java/io/github/tjheslin1/patterdale/metrics/probe/ListOracleSQLProbeTest.java
import io.github.tjheslin1.patterdale.config.RuntimeParameters;
import io.github.tjheslin1.patterdale.database.DBConnection;
import io.github.tjheslin1.patterdale.database.DBConnectionPool;
import org.assertj.core.api.WithAssertions;
import org.junit.Test;
import org.slf4j.Logger;
import testutil.WithMockito;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.List;
import java.util.concurrent.Future;
import java.util.concurrent.TimeoutException;
import static io.github.tjheslin1.patterdale.metrics.probe.Probe.probe;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
import static java.util.concurrent.TimeUnit.SECONDS;

package io.github.tjheslin1.patterdale.metrics.probe;




public class ListOracleSQLProbeTest implements WithAssertions, WithMockito {

    private static final Probe PROBE = probe("name", "SQL", "exists", "name", "label");

    private final ResultSet resultSet = mock(ResultSet.class);
    private final ResultSetMetaData resultSetMetaData = mock(ResultSetMetaData.class);
    private final PreparedStatement preparedStatement = mock(PreparedStatement.class);
    private final Connection connection = mock(Connection.class);
    private final DBConnection dbConnection = mock(DBConnection.class);