/*
 * Created on 22-Mar-2005
 */

package org.bodington.servlet;

import junit.framework.TestCase;

/**
 * @author buckett
 */
public class SetupServletTest extends TestCase
{

    public void testGetDatabasePostgreSQL()
    {
        // PostgreSQL URLs
        // jdbc:postgresql:database
        // jdbc:postgresql://host/database
        // jdbc:postgresql://host:port/database
        assertEquals("database", SetupServlet.getDatabase(
            "org.postgresql.Driver", "jdbc:postgresql:database"));
        assertEquals("database", SetupServlet.getDatabase(
            "org.postgresql.Driver", "jdbc:postgresql://host/database"));
        assertEquals("database", SetupServlet.getDatabase(
            "org.postgresql.Driver", "jdbc:postgresql://host:5432/database"));
    }

    public void testGetDatabaseOracle()
    {
        // Oracle URLs
        // jdbc:oracle:thin:[<user>/<password>]@[//]<host>[:<port>]/<service>
        // jdbc:oracle:oci:[<user>/<password>]@[//]<host>[:<port>]/<service>
        assertEquals("database", SetupServlet.getDatabase(
            "oracle.jdbc.driver.OracleDriver",
            "jdbc:oracle:thin:@localhost/database"));
        assertEquals("database", SetupServlet.getDatabase(
            "oracle.jdbc.driver.OracleDriver",
            "jdbc:oracle:thin:@//localhost/database"));
        assertEquals("database", SetupServlet.getDatabase(
            "oracle.jdbc.driver.OracleDriver",
            "jdbc:oracle:thin:user/password@//localhost/database"));
        assertEquals("database", SetupServlet.getDatabase(
            "oracle.jdbc.driver.OracleDriver",
            "jdbc:oracle:thin:user/password@//localhost:1521/database"));

    }

    public void testGetDatabaseMSSQL()
    {
        // jdbc:microsoft:sqlserver://server_name\\instance_name
        // jdbc:microsoft:sqlserver://server1\\instance1;User=test;Password=secret;DatabaseName=database
        assertEquals(
            "database",
            SetupServlet
                .getDatabase("com.microsoft.jdbc.sqlserver.SQLServerDriver",
                    "jdbc:microsoft:sqlserver://hostname\\instance;DatabaseName=database"));
        assertEquals(
            "database",
            SetupServlet
                .getDatabase(
                    "com.microsoft.jdbc.sqlserver.SQLServerDriver",
                    "jdbc:microsoft:sqlserver://hostname\\instance;DatabaseName=database;SelectMethod=direct"));

    }

}