package org.zapodot.junit.db; import com.github.davidmoten.rx.jdbc.Database; import org.junit.Rule; import org.junit.Test; import rx.Observable; import rx.functions.Func2; import java.util.Date; import static org.junit.Assert.assertTrue; public class EmbeddedDatabaseRuleMultipleTest { // If you have more than one instance in your test class, you should name them explicitly @Rule public EmbeddedDatabaseRule embeddedDatabaseMysqlRule = EmbeddedDatabaseRule.builder().withName("db1").withMode("MySQL").build(); @Rule public EmbeddedDatabaseRule embeddedDatabaseMsSqlServerRule = EmbeddedDatabaseRule.builder().withName("db2").withMode("MSSQLServer").build(); @Test public void testStuff() throws Exception { final Database mysql = Database.from(embeddedDatabaseMysqlRule.getConnection()); final Database mssqlServer = Database.from(embeddedDatabaseMsSqlServerRule.getConnection()); final Observable<Date> dateMysql = mysql.select("select sysdate from dual").getAs(Date.class); final Observable<Date> dateMssql = mssqlServer.select("select sysdate from dual").getAs(Date.class); assertTrue(Observable.zip(dateMysql, dateMssql, new Func2<Date, Date, Boolean>() { @Override public Boolean call(final Date date, final Date date2) { return date != null && date2 != null; } }).toBlocking().single()); } }