diff artifacts/src/test/java/org/dive4elements/river/utils/MapUtilsTest.java @ 9672:b70b1bc0eece 3.2.x

Essentially rewrite MapUtils.getConnection() to cope with driver capabilities
author Tom Gottfried <tom@intevation.de>
date Sat, 23 May 2020 10:37:23 +0200
parents 9cfc495a9f40
children f4fdf7798bab
line wrap: on
line diff
--- a/artifacts/src/test/java/org/dive4elements/river/utils/MapUtilsTest.java	Fri May 22 19:45:08 2020 +0200
+++ b/artifacts/src/test/java/org/dive4elements/river/utils/MapUtilsTest.java	Sat May 23 10:37:23 2020 +0200
@@ -7,6 +7,7 @@
  */
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
 
 import org.junit.Test;
 
@@ -26,24 +27,109 @@
     private static final String PG_CON_SUFFIX = " sslmode=disable";
 
     @Test
+    public void noJDBCURL() {
+        String con = MapUtils.getConnection(USER, PSWD, "xx");
+        assertNull(con);
+    }
+
+    @Test
+    public void invalidHostPG() {
+        String con = MapUtils.getConnection(
+            USER, PSWD, DRV_PG + "//invalid_host_name/");
+        assertNull(con);
+    }
+
+    @Test
+    public void localNamedPG() {
+        String con = MapUtils.getConnection(
+            USER, PSWD, DRV_PG + DB);
+        assertEquals(
+            "dbname=" + DB
+            + " user=" + USER
+            + " password='" + PSWD + "'" + PG_CON_SUFFIX,
+            con);
+    }
+
+    @Test
+    public void localUserPG() {
+        String con = MapUtils.getConnection(
+            USER, PSWD, DRV_PG + "/");
+        assertEquals(
+            "dbname=" + USER
+            + " user=" + USER
+            + " password='" + PSWD + "'" + PG_CON_SUFFIX,
+            con);
+    }
+
+    @Test
+    public void hostNamedPG() {
+        String con = MapUtils.getConnection(
+            USER, PSWD, DRV_PG + "//" + HOST + "/" + DB);
+        assertEquals(
+            "dbname=" + DB
+            + " user=" + USER
+            + " host='" + HOST + "'"
+            + " password='" + PSWD + "'" + PG_CON_SUFFIX,
+            con);
+    }
+
+    @Test
+    public void hostUserPG() {
+        String con = MapUtils.getConnection(
+            USER, PSWD, DRV_PG + "//" + HOST + "/");
+        assertEquals(
+            "dbname=" + USER
+            + " user=" + USER
+            + " host='" + HOST + "'"
+            + " password='" + PSWD + "'" + PG_CON_SUFFIX,
+            con);
+    }
+
+    @Test
+    public void hostPortUserPG() {
+        String con = MapUtils.getConnection(
+            USER, PSWD, DRV_PG + "//" + HOST + ":" + PORT + "/");
+        assertEquals(
+            "dbname=" + USER
+            + " user=" + USER
+            + " host='" + HOST + "' port=" + PORT
+            + " password='" + PSWD + "'" + PG_CON_SUFFIX,
+            con);
+    }
+
+    @Test
     public void hostPortNamedPG() {
-        MapUtils mu = new MapUtils();
         String con = MapUtils.getConnection(
             USER, PSWD, DRV_PG + "//" + HOST + ":" + PORT + "/" + DB);
         assertEquals(
             "dbname=" + DB
-            + " host='" + HOST + "' user=" + USER + " port=" + PORT
+            + " user=" + USER
+            + " host='" + HOST + "' port=" + PORT
             + " password='" + PSWD + "'" + PG_CON_SUFFIX,
             con);
     }
 
     @Test
     public void serviceNameORA() {
-        MapUtils mu = new MapUtils();
         String con = MapUtils.getConnection(
             USER, PSWD, DRV_ORA + "@//" + HOST + ":" + PORT + "/" + DB);
         assertEquals(
             USER + "/" + PSWD + "@" + HOST + ":" + PORT + "/" + DB,
             con);
     }
+
+    @Test
+    public void connectDescriptorORA() {
+        String con = MapUtils.getConnection(
+            USER, PSWD, DRV_ORA
+            + "@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST="
+            + HOST + ")(PORT=" + PORT + "))(CONNECT_DATA=(SERVICE_NAME="
+            + DB + ")))");
+        assertEquals(
+            USER + "/" + PSWD
+            + "@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST="
+            + HOST + ")(PORT=" + PORT + "))(CONNECT_DATA=(SERVICE_NAME="
+            + DB + ")))",
+            con);
+    }
 }

http://dive4elements.wald.intevation.org