1
1
package com .clickhouse .client ;
2
2
3
- import com .clickhouse .client .api .Client ;
4
3
import com .clickhouse .client .api .ClientConfigProperties ;
4
+ import com .clickhouse .client .api .insert .InsertSettings ;
5
+ import com .clickhouse .client .api .query .QuerySettings ;
5
6
import org .testng .Assert ;
6
7
import org .testng .annotations .Test ;
7
8
8
9
import java .util .Arrays ;
10
+ import java .util .Collections ;
9
11
import java .util .List ;
10
12
13
+ @ Test (groups = {"unit" })
11
14
public class SettingsTests {
12
15
13
16
@ Test
@@ -17,4 +20,125 @@ void testClientSettings() {
17
20
List <String > listB = ClientConfigProperties .valuesFromCommaSeparated (listA );
18
21
Assert .assertEquals (listB , source );
19
22
}
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
+ }
20
144
}
0 commit comments