/* * Copyright 2005-2010 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wamblee.test.persistence; import java.sql.Connection; import javax.sql.DataSource; import org.junit.Test; import org.wamblee.test.persistence.Database; import org.wamblee.test.persistence.DatabaseBuilder; import org.wamblee.test.persistence.DatabaseProvider; import org.wamblee.test.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(); } } }