package org.wamblee.support.persistence; import java.sql.Connection; import javax.sql.DataSource; import org.junit.Test; import org.wamblee.support.persistence.Database; import org.wamblee.support.persistence.DatabaseBuilder; import org.wamblee.support.persistence.DatabaseProvider; import org.wamblee.support.persistence.ExternalDatabase; import static junit.framework.TestCase.*; public class ExternalDatabaseTest { @Test public void testExternalDB() throws Exception { // Connect to inmemory db using External database class. Database inmemory = DatabaseBuilder .getDatabase(DatabaseProvider.CAPABILITY_IN_MEMORY); try { inmemory.start(); System.setProperty(ExternalDatabase.DB_URL_PROP, inmemory .getExternalJdbcUrl()); System.setProperty(ExternalDatabase.DB_USER_PROP, inmemory .getUsername()); System.setProperty(ExternalDatabase.DB_PASSWORD_PROP, inmemory .getPassword()); Database external = DatabaseBuilder .getDatabase(DatabaseProvider.CAPABILITY_EXTERNAL); assertTrue(external instanceof ExternalDatabase); try { DataSource ds = external.start(); Connection conn = ds.getConnection(); try { System.out.println("Database name: " + conn.getMetaData().getDatabaseProductName()); } finally { conn.close(); } } finally { external.stop(); } } finally { inmemory.stop(); } } }