File tree Expand file tree Collapse file tree 2 files changed +18
-2
lines changed
main/java/org/testcontainers/jdbc
test/java/org/testcontainers/jdbc Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -107,7 +107,7 @@ private void parseUrl() {
107107 //In case it matches to the default pattern
108108 Matcher dbInstanceMatcher = Patterns .DB_INSTANCE_MATCHING_PATTERN .matcher (dbHostString );
109109 if (dbInstanceMatcher .matches ()) {
110- databaseHost = Optional .of (dbInstanceMatcher .group ("databaseHost" ));
110+ databaseHost = Optional .ofNullable (dbInstanceMatcher .group ("databaseHost" ));
111111 databasePort = Optional .ofNullable (dbInstanceMatcher .group ("databasePort" )).map (Integer ::valueOf );
112112 databaseName = Optional .of (dbInstanceMatcher .group ("databaseName" ));
113113 }
@@ -227,7 +227,7 @@ public interface Patterns {
227227
228228 //Matches to part of string - hostname:port/databasename
229229 Pattern DB_INSTANCE_MATCHING_PATTERN = Pattern .compile (
230- "(?<databaseHost>[^:]+)" +
230+ "(?<databaseHost>[^:]+)? " +
231231 "(:(?<databasePort>[0-9]+))?" +
232232 "(" +
233233 "(?<sidOrServiceName>[:/])" +
Original file line number Diff line number Diff line change @@ -111,4 +111,20 @@ public void testDaemonCapture() {
111111
112112 assertThat (url .isInDaemonMode ()).as ("Daemon flag is set to true." ).isTrue ();
113113 }
114+
115+ @ Test
116+ public void testHostLessConnectionUrl () {
117+ String urlString = "jdbc:tc:mysql:8.0.36:///databasename?a=b&c=d" ;
118+ ConnectionUrl url = ConnectionUrl .newInstance (urlString );
119+
120+ assertThat (url .getDatabaseType ()).as ("Database Type value is as expected" ).isEqualTo ("mysql" );
121+ assertThat (url .getImageTag ()).as ("Database Image tag value is as expected" ).contains ("8.0.36" );
122+ assertThat (url .getQueryString ()).as ("Query String value is as expected" ).contains ("?a=b&c=d" );
123+ assertThat (url .getDatabaseHost ()).as ("Database Host value is as expected" ).isEmpty ();
124+ assertThat (url .getDatabasePort ()).as ("Database Port value is as expected" ).isEmpty ();
125+ assertThat (url .getDatabaseName ()).as ("Database Name value is as expected" ).contains ("databasename" );
126+
127+ assertThat (url .getQueryParameters ()).as ("Parameter a is captured" ).containsEntry ("a" , "b" );
128+ assertThat (url .getQueryParameters ()).as ("Parameter c is captured" ).containsEntry ("c" , "d" );
129+ }
114130}
You can’t perform that action at this time.
0 commit comments