Skip to content

Commit d592b5b

Browse files
committed
added more tests for settings
1 parent c09962f commit d592b5b

File tree

2 files changed

+142
-2
lines changed

2 files changed

+142
-2
lines changed

client-v2/src/main/java/com/clickhouse/client/api/insert/InsertSettings.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,24 @@ public InsertSettings appCompressedData(boolean enabled, String compressionMetho
156156
return this;
157157
}
158158

159+
/**
160+
*
161+
* @return true if client compression is enabled
162+
* @deprecated because of typo
163+
*/
159164
public boolean isClientRequestEnabled() {
160-
return (Boolean) settings.getOption(ClientConfigProperties.COMPRESS_CLIENT_REQUEST.getKey());
165+
Boolean flag = (Boolean) settings.getOption(ClientConfigProperties.COMPRESS_CLIENT_REQUEST.getKey());
166+
return flag != null && flag;
167+
}
168+
169+
/**
170+
* Returns indication if client request should be compressed (client side compression).
171+
*
172+
* @return true if client compression is enabled
173+
*/
174+
public boolean isClientCompressionEnabled() {
175+
Boolean flag = (Boolean) settings.getOption(ClientConfigProperties.COMPRESS_CLIENT_REQUEST.getKey());
176+
return flag != null && flag;
161177
}
162178

163179
/**

client-v2/src/test/java/com/clickhouse/client/SettingsTests.java

Lines changed: 125 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package com.clickhouse.client;
22

3-
import com.clickhouse.client.api.Client;
43
import com.clickhouse.client.api.ClientConfigProperties;
4+
import com.clickhouse.client.api.insert.InsertSettings;
5+
import com.clickhouse.client.api.query.QuerySettings;
56
import org.testng.Assert;
67
import org.testng.annotations.Test;
78

89
import java.util.Arrays;
10+
import java.util.Collections;
911
import java.util.List;
1012

13+
@Test(groups = {"unit"})
1114
public 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

Comments
 (0)