11package com .clickhouse .client ;
22
3- import com .clickhouse .client .api .Client ;
43import com .clickhouse .client .api .ClientConfigProperties ;
4+ import com .clickhouse .client .api .insert .InsertSettings ;
5+ import com .clickhouse .client .api .query .QuerySettings ;
56import org .testng .Assert ;
67import org .testng .annotations .Test ;
78
89import java .util .Arrays ;
10+ import java .util .Collections ;
911import java .util .List ;
1012
13+ @ Test (groups = {"unit" })
1114public class SettingsTests {
1215
1316 @ Test
@@ -17,4 +20,125 @@ void testClientSettings() {
1720 List <String > listB = ClientConfigProperties .valuesFromCommaSeparated (listA );
1821 Assert .assertEquals (listB , source );
1922 }
23+
24+ @ Test
25+ void testMergeQuerySettings () {
26+ QuerySettings settings1 = new QuerySettings ().setQueryId ("test1" ).httpHeader ("key1" , "value1" );
27+ QuerySettings settings2 = new QuerySettings ().httpHeader ("key1" , "value2" );
28+
29+ QuerySettings merged = QuerySettings .merge (settings1 , settings2 );
30+ Assert .assertNotSame (merged , settings1 );
31+ Assert .assertNotSame (merged , settings2 );
32+
33+ Assert .assertEquals (merged .getAllSettings ().get (ClientConfigProperties .httpHeader ("key1" )), "value2" );
34+ }
35+
36+ @ Test
37+ void testQuerySettingsSpecific () throws Exception {
38+ {
39+ final QuerySettings settings = new QuerySettings ();
40+ settings .setUseTimeZone ("America/Los_Angeles" );
41+ Assert .assertThrows (IllegalArgumentException .class , () -> settings .setUseServerTimeZone (true ));
42+ settings .resetOption (ClientConfigProperties .USE_TIMEZONE .getKey ());
43+ settings .setUseServerTimeZone (true );
44+ }
45+
46+ {
47+ final QuerySettings settings = new QuerySettings ();
48+ settings .setUseServerTimeZone (true );
49+ Assert .assertTrue (settings .getUseServerTimeZone ());
50+ Assert .assertThrows (IllegalArgumentException .class , () -> settings .setUseTimeZone ("America/Los_Angeles" ));
51+ }
52+
53+ {
54+ final QuerySettings settings = new QuerySettings ();
55+ settings .setDatabase ("test_db1" );
56+ Assert .assertEquals (settings .getDatabase (), "test_db1" );
57+ }
58+
59+ {
60+ final QuerySettings settings = new QuerySettings ();
61+ settings .setReadBufferSize (10000 );
62+ Assert .assertEquals (settings .getReadBufferSize (), 10000 );
63+
64+ Assert .assertThrows (IllegalArgumentException .class , () -> settings .setReadBufferSize (1000 ));
65+ }
66+
67+ {
68+ final QuerySettings settings = new QuerySettings ();
69+ settings .setMaxExecutionTime (10000 );
70+ Assert .assertEquals (settings .getMaxExecutionTime (), 10000 );
71+ }
72+
73+ {
74+ final QuerySettings settings = new QuerySettings ();
75+ settings .setDBRoles (Arrays .asList ("role1" , "role2" ));
76+ Assert .assertEquals (settings .getDBRoles (), Arrays .asList ("role1" , "role2" ));
77+ settings .setDBRoles (Collections .emptyList ());
78+ Assert .assertEquals (settings .getDBRoles (), Collections .emptyList ());
79+ }
80+
81+ {
82+ final QuerySettings settings = new QuerySettings ();
83+ settings .logComment ("comment1" );
84+ Assert .assertEquals (settings .getLogComment (), "comment1" );
85+ settings .logComment ("comment2" );
86+ Assert .assertEquals (settings .getLogComment (), "comment2" );
87+ settings .logComment (null );
88+ Assert .assertNull (settings .getLogComment ());
89+ }
90+ }
91+
92+ @ Test
93+ public void testInsertSettingsSpecific () throws Exception {
94+ {
95+ final InsertSettings settings = new InsertSettings ();
96+ settings .setDatabase ("test_db1" );
97+ Assert .assertEquals (settings .getDatabase (), "test_db1" );
98+ }
99+
100+ {
101+ final InsertSettings settings = new InsertSettings ();
102+ Assert .assertFalse (settings .isClientCompressionEnabled ());
103+ settings .compressClientRequest (true );
104+ Assert .assertTrue (settings .isClientCompressionEnabled ());
105+ Assert .assertTrue (settings .isClientRequestEnabled ());
106+ }
107+
108+
109+ {
110+ final InsertSettings settings = new InsertSettings ();
111+ settings .httpHeader ("key1" , "value1" );
112+ Assert .assertEquals (settings .getAllSettings ().get (ClientConfigProperties .httpHeader ("key1" )), "value1" );
113+ settings .httpHeader ("key1" , "value2" );
114+ Assert .assertEquals (settings .getAllSettings ().get (ClientConfigProperties .httpHeader ("key1" )), "value2" );
115+ }
116+
117+
118+ {
119+ final InsertSettings settings = new InsertSettings ();
120+ settings .serverSetting ("key1" , "value1" );
121+ Assert .assertEquals (settings .getAllSettings ().get (ClientConfigProperties .serverSetting ("key1" )), "value1" );
122+ settings .serverSetting ("key1" , "value2" );
123+ Assert .assertEquals (settings .getAllSettings ().get (ClientConfigProperties .serverSetting ("key1" )), "value2" );
124+ }
125+
126+ {
127+ final InsertSettings settings = new InsertSettings ();
128+ settings .setDBRoles (Arrays .asList ("role1" , "role2" ));
129+ Assert .assertEquals (settings .getDBRoles (), Arrays .asList ("role1" , "role2" ));
130+ settings .setDBRoles (Collections .emptyList ());
131+ Assert .assertEquals (settings .getDBRoles (), Collections .emptyList ());
132+ }
133+
134+ {
135+ final InsertSettings settings = new InsertSettings ();
136+ settings .logComment ("comment1" );
137+ Assert .assertEquals (settings .getLogComment (), "comment1" );
138+ settings .logComment ("comment2" );
139+ Assert .assertEquals (settings .getLogComment (), "comment2" );
140+ settings .logComment (null );
141+ Assert .assertNull (settings .getLogComment ());
142+ }
143+ }
20144}
0 commit comments