@@ -11,66 +11,124 @@ public class ConnectionInfoTest {
1111
1212 /**
1313 * Regex pattern to match following connection strings:
14- * user/pass@127.0.0.1:1521 /db
15- * user/pass@127.0.0.1 /db
14+ * user/pass@host:port /db
15+ * user/pass@host /db
1616 * user/pass@db
17- * user/pass
1817 */
1918
2019 @ Test
21- public void connectionStr_Full () {
20+ public void valid_Full () {
2221 try {
23- ConnectionInfo ci = new ConnectionInfo ().parseConnectionString ("user/pass@localhost:3000/db" );
24- Assert .assertEquals ("user" , ci .getUser ());
25- Assert .assertEquals ("pass" , ci .getPassword ());
26- Assert .assertEquals ("localhost" , ci .getHost ());
22+ ConnectionInfo ci = new ConnectionInfo ()
23+ .parseConnectionString ("my_user/p@ss!@some.server.123-abc.com:3000/db_1.acme.com" );
24+ Assert .assertEquals ("my_user" , ci .getUser ());
25+ Assert .assertEquals ("p@ss!" , ci .getPassword ());
26+ Assert .assertEquals ("some.server.123-abc.com" , ci .getHost ());
2727 Assert .assertEquals (3000 , ci .getPort ());
28- Assert .assertEquals ("db " , ci .getDb ());
29- Assert .assertEquals ("user@localhost :3000/db " , ci .toString ());
30- Assert .assertEquals ("jdbc:oracle:thin:@//localhost :3000/db " , ci .getConnectionUrl ());
28+ Assert .assertEquals ("db_1.acme.com " , ci .getDatabase ());
29+ Assert .assertEquals ("my_user@some.server.123-abc.com :3000/db_1.acme.com " , ci .toString ());
30+ Assert .assertEquals ("jdbc:oracle:thin:@//some.server.123-abc.com :3000/db_1.acme.com " , ci .getConnectionUrl ());
3131 } catch (Exception e ) {
3232 Assert .fail (e .getMessage ());
3333 }
3434 }
3535
3636 @ Test
37- public void connectionStr_WithoutPort () {
37+ public void valid_WithoutPort () {
3838 try {
39- ConnectionInfo ci = new ConnectionInfo ().parseConnectionString ("user/pass@localhost/db" );
40- Assert .assertEquals ("user" , ci .getUser ());
41- Assert .assertEquals ("pass" , ci .getPassword ());
42- Assert .assertEquals ("localhost" , ci .getHost ());
39+ ConnectionInfo ci = new ConnectionInfo ()
40+ .parseConnectionString ("my_user/p@ss!@some.server.123-abc.com/db_1.acme.com" );
41+ Assert .assertEquals ("my_user" , ci .getUser ());
42+ Assert .assertEquals ("p@ss!" , ci .getPassword ());
43+ Assert .assertEquals ("some.server.123-abc.com" , ci .getHost ());
4344 Assert .assertEquals (1521 , ci .getPort ());
44- Assert .assertEquals ("db " , ci .getDb ());
45- Assert .assertEquals ("user@localhost :1521/db " , ci .toString ());
46- Assert .assertEquals ("jdbc:oracle:thin:@//localhost :1521/db " , ci .getConnectionUrl ());
45+ Assert .assertEquals ("db_1.acme.com " , ci .getDatabase ());
46+ Assert .assertEquals ("my_user@some.server.123-abc.com :1521/db_1.acme.com " , ci .toString ());
47+ Assert .assertEquals ("jdbc:oracle:thin:@//some.server.123-abc.com :1521/db_1.acme.com " , ci .getConnectionUrl ());
4748 } catch (Exception e ) {
4849 Assert .fail (e .getMessage ());
4950 }
5051 }
5152
5253 @ Test
53- public void connectionStr_WithoutHostAndPort () {
54+ public void valid_WithoutHostAndPort () {
5455 try {
55- ConnectionInfo ci = new ConnectionInfo ().parseConnectionString ("user/pass@db" );
56- Assert .assertEquals ("user" , ci .getUser ());
57- Assert .assertEquals ("pass" , ci .getPassword ());
56+ ConnectionInfo ci = new ConnectionInfo ()
57+ .parseConnectionString ("my_user/p@ss!@127.0.0.1/db_1.acme.com" );
58+ Assert .assertEquals ("my_user" , ci .getUser ());
59+ Assert .assertEquals ("p@ss!" , ci .getPassword ());
5860 Assert .assertEquals ("127.0.0.1" , ci .getHost ());
5961 Assert .assertEquals (1521 , ci .getPort ());
60- Assert .assertEquals ("db " , ci .getDb ());
61- Assert .assertEquals ("user @127.0.0.1:1521/db " , ci .toString ());
62- Assert .assertEquals ("jdbc:oracle:thin:@//127.0.0.1:1521/db " , ci .getConnectionUrl ());
62+ Assert .assertEquals ("db_1.acme.com " , ci .getDatabase ());
63+ Assert .assertEquals ("my_user @127.0.0.1:1521/db_1.acme.com " , ci .toString ());
64+ Assert .assertEquals ("jdbc:oracle:thin:@//127.0.0.1:1521/db_1.acme.com " , ci .getConnectionUrl ());
6365 } catch (Exception e ) {
6466 Assert .fail (e .getMessage ());
6567 }
6668 }
6769
6870 @ Test
69- public void connectionStr_Invalid () {
71+ public void invalid_WithoutDatabase_1 () {
72+ try {
73+ new ConnectionInfo ().parseConnectionString ("user/pass@" );
74+ Assert .fail ();
75+ } catch (ParameterException ignored ) {}
76+ }
77+
78+ @ Test
79+ public void invalid_WithoutDatabase_2 () {
7080 try {
7181 new ConnectionInfo ().parseConnectionString ("user/pass" );
7282 Assert .fail ();
7383 } catch (ParameterException ignored ) {}
7484 }
7585
86+ @ Test
87+ public void invalid_WithoutDatabase_3 () {
88+ try {
89+ new ConnectionInfo ().parseConnectionString ("user/pass@localhost:1521" );
90+ Assert .fail ();
91+ } catch (ParameterException ignored ) {}
92+ }
93+
94+ @ Test
95+ public void invalid_WithoutHost () {
96+ try {
97+ new ConnectionInfo ().parseConnectionString ("user/pass@/db" );
98+ Assert .fail ();
99+ } catch (ParameterException ignored ) {}
100+ }
101+
102+ @ Test
103+ public void invalid_WithoutPassword () {
104+ try {
105+ new ConnectionInfo ().parseConnectionString ("user/@db" );
106+ Assert .fail ();
107+ } catch (ParameterException ignored ) {}
108+ }
109+
110+ @ Test
111+ public void invalid_WithoutUsername () {
112+ try {
113+ new ConnectionInfo ().parseConnectionString ("/pass@db" );
114+ Assert .fail ();
115+ } catch (ParameterException ignored ) {}
116+ }
117+
118+ @ Test
119+ public void invalid_WithoutUserPassDb_1 () {
120+ try {
121+ new ConnectionInfo ().parseConnectionString ("/@db" );
122+ Assert .fail ();
123+ } catch (ParameterException ignored ) {}
124+ }
125+
126+ @ Test
127+ public void invalid_WithoutUserPass () {
128+ try {
129+ new ConnectionInfo ().parseConnectionString ("@db" );
130+ Assert .fail ();
131+ } catch (ParameterException ignored ) {}
132+ }
133+
76134}
0 commit comments