33import org .junit .jupiter .api .Test ;
44
55import java .io .IOException ;
6+ import java .util .ArrayList ;
7+ import java .util .HashMap ;
68import java .util .LinkedHashMap ;
9+ import java .util .List ;
710import java .util .Map ;
811import java .util .Properties ;
912
@@ -37,12 +40,50 @@ public void addProperty() {
3740 public void parseCustom () {
3841
3942 DataSourceConfig config = new DataSourceConfig ();
40- Map <String , String > map = config .parseCustom ("a=1;b=2;c=3" );
43+ Map <String , String > map = new HashMap <>();
44+ config .parseCustom ("a=1;b=2;c=3" , map );
4145
4246 assertThat (map ).hasSize (3 );
4347 assertThat (map .get ("a" )).isEqualTo ("1" );
4448 assertThat (map .get ("b" )).isEqualTo ("2" );
4549 assertThat (map .get ("c" )).isEqualTo ("3" );
50+
51+ config .parseCustom ("a=4;b=5;d=6" , map );
52+ assertThat (map ).hasSize (4 );
53+ assertThat (map .get ("a" )).isEqualTo ("4" );
54+ assertThat (map .get ("b" )).isEqualTo ("5" );
55+ assertThat (map .get ("c" )).isEqualTo ("3" );
56+ assertThat (map .get ("d" )).isEqualTo ("6" );
57+ }
58+
59+ @ Test
60+ public void parseSql () {
61+
62+ DataSourceConfig config = new DataSourceConfig ();
63+ List <String > list = new ArrayList <>();
64+ config .parseSql ("SET NAMES utf8mb4;SET collation_connection = 'utf8mb4_bin';SET wait_timeout = 28800" , list );
65+ assertThat (list ).containsExactly ("SET NAMES utf8mb4" , "SET collation_connection = 'utf8mb4_bin'" , "SET wait_timeout = 28800" );
66+
67+ config .parseSql ("delimiter $$CREATE PROCEDURE test1\n " +
68+ "BEGIN\n " +
69+ "DECLARE xy INT DEFAULT FALSE;\n " +
70+ "END$$CREATE PROCEDURE test2\n " +
71+ "BEGIN\n " +
72+ "DECLARE ab INT DEFAULT FALSE;\n " +
73+ "END$$" , list );
74+ assertThat (list ).containsExactly (
75+ "SET NAMES utf8mb4" ,
76+ "SET collation_connection = 'utf8mb4_bin'" ,
77+ "SET wait_timeout = 28800" ,
78+ "CREATE PROCEDURE test1\n " +
79+ "BEGIN\n " +
80+ "DECLARE xy INT DEFAULT FALSE;\n " +
81+ "END" ,
82+ "CREATE PROCEDURE test2\n " +
83+ "BEGIN\n " +
84+ "DECLARE ab INT DEFAULT FALSE;\n " +
85+ "END" );
86+
4687 }
4788
4889 @ Test
@@ -79,9 +120,9 @@ public void copy() {
79120 source .setSchema ("sch" );
80121 source .catalog ("cat" );
81122
82- Map <String ,String > customSource = new LinkedHashMap <>();
83- customSource .put ("a" ,"a" );
84- customSource .put ("b" ,"b" );
123+ Map <String , String > customSource = new LinkedHashMap <>();
124+ customSource .put ("a" , "a" );
125+ customSource .put ("b" , "b" );
85126 source .setCustomProperties (customSource );
86127
87128
@@ -95,8 +136,8 @@ public void copy() {
95136 assertEquals (42 , copy .getMinConnections ());
96137 assertEquals (45 , copy .getMaxConnections ());
97138
98- customSource .put ("a" ,"modifiedA" );
99- customSource .put ("c" ,"newC" );
139+ customSource .put ("a" , "modifiedA" );
140+ customSource .put ("c" , "newC" );
100141
101142 assertEquals ("a" , copy .getCustomProperties ().get ("a" ));
102143 assertEquals ("b" , copy .getCustomProperties ().get ("b" ));
@@ -121,13 +162,30 @@ public void defaults() {
121162 }
122163
123164 @ Test
124- public void defaults_someOverride () {
165+ void setDefaults_expect_connectionsDefault () {
166+ DataSourceConfig readOnly = new DataSourceConfig ();
167+ readOnly .setDefaults (create ());
168+ assertThat (readOnly .getMinConnections ()).isEqualTo (1 );
169+ assertThat (readOnly .getMaxConnections ()).isEqualTo (20 );
170+ }
125171
172+ @ Test
173+ void setDefaults_when_explicit () {
174+ DataSourceConfig readOnly = new DataSourceConfig ();
175+ readOnly .setMinConnections (21 );
176+ readOnly .setMaxConnections (22 );
177+ readOnly .setDefaults (create ());
178+ assertThat (readOnly .getMinConnections ()).isEqualTo (21 );
179+ assertThat (readOnly .getMaxConnections ()).isEqualTo (22 );
180+ }
181+
182+ @ Test
183+ public void defaults_someOverride () {
126184 DataSourceConfig readOnly = new DataSourceConfig ();
127- readOnly .setMinConnections (3 );
128185 readOnly .setUsername ("foo2" );
129186 readOnly .setUrl ("jdbc:postgresql://127.0.0.2:5432/unit" );
130187 readOnly .validateOnHeartbeat (false );
188+ readOnly .setMinConnections (3 );
131189
132190 DataSourceBuilder configBuilder = create ();
133191 DataSourceConfig readOnly2 = readOnly .setDefaults (configBuilder );
0 commit comments