package org.zapodot.junit.db;
import com.github.davidmoten.rx.jdbc.Database;
import org.junit.Rule;
import org.junit.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Date;
import static org.junit.Assert.*;
public class EmbeddedDatabaseRuleWithBuilderTest {
@Rule
public EmbeddedDatabaseRule embeddedDatabaseRule = EmbeddedDatabaseRule.builder().withMode("ORACLE").withInitialSql(
"CREATE TABLE Customer(id INTEGER PRIMARY KEY, name VARCHAR(512)); "
+ "INSERT INTO CUSTOMER(id, name) VALUES (1, 'John Doe')").build();
@Test
public void testUsingRxJava() throws Exception {
assertNotNull(embeddedDatabaseRule.getConnection());
final Database database = Database.from(embeddedDatabaseRule.getConnection());
assertNotNull(database.select("SELECT sysdate from DUAL").getAs(Date.class).toBlocking().single());
assertEquals("John Doe", database.select("select name from customer where id=1").getAs(String.class).toBlocking().single());
}
@Test
public void testUsingConnectionUrl() throws Exception {
try(final Connection connection = DriverManager.getConnection(embeddedDatabaseRule.getConnectionJdbcUrl())) {
try(final Statement statement = connection.createStatement()) {
try (final ResultSet resultSet = statement.executeQuery("SELECT * from CUSTOMER")) {
assertTrue(resultSet.next());
}
}
}
}
}