(no commit message)
[utils] / test / enterprise / src / test / java / org / wamblee / support / persistence / ExternalDatabaseTest.java
diff --git a/test/enterprise/src/test/java/org/wamblee/support/persistence/ExternalDatabaseTest.java b/test/enterprise/src/test/java/org/wamblee/support/persistence/ExternalDatabaseTest.java
new file mode 100644 (file)
index 0000000..dbe5800
--- /dev/null
@@ -0,0 +1,53 @@
+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();
+               }
+
+       }
+}