/* * Copyright (c) 2007, PostgreSQL Global Development Group * See the LICENSE file in the project root for more information. */ package org.postgresql.test.hostchooser; import org.postgresql.test.TestUtil; import org.postgresql.util.PSQLException; import junit.framework.TestCase; import junit.framework.TestSuite; import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties; /* * Executes multi host tests (aka master/slave connectivity selection). */ public class MultiHostTestSuite extends TestSuite { public static java.sql.Connection openSlaveDB() throws Exception { TestUtil.initDriver(); Properties props = new Properties(); props.setProperty("user", TestUtil.getUser()); props.setProperty("password", TestUtil.getPassword()); return DriverManager.getConnection(TestUtil.getURL(getSlaveServer(), getSlavePort()), props); } /* * Returns the Test server */ public static String getSlaveServer() { return System.getProperty("slaveServer", TestUtil.getServer()); } /* * Returns the Test port */ public static int getSlavePort() { return Integer .parseInt(System.getProperty("slavePort", String.valueOf(TestUtil.getPort() + 1))); } /* * The main entry point for JUnit */ public static TestSuite suite() throws Exception { TestSuite suite = new TestSuite(); try { Connection connection = openSlaveDB(); TestUtil.closeDB(connection); } catch (PSQLException ex) { // replication instance is not available, but suite must have at lest one test case suite.addTestSuite(DummyTest.class); return suite; } suite.addTestSuite(MultiHostsConnectionTest.class); return suite; } public static class DummyTest extends TestCase { public DummyTest(String name) { super(name); } public void testDummy() { } } }