Skip to content

Commit b34aa19

Browse files
authored
[test] Increase code coverage for class FlussConfigUtils (#914)
1 parent dd6daeb commit b34aa19

File tree

3 files changed

+54
-2
lines changed

3 files changed

+54
-2
lines changed

fluss-common/src/main/java/com/alibaba/fluss/config/FlussConfigUtils.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.alibaba.fluss.config;
1818

1919
import com.alibaba.fluss.annotation.Internal;
20+
import com.alibaba.fluss.annotation.VisibleForTesting;
2021

2122
import java.lang.reflect.Field;
2223
import java.util.HashMap;
@@ -36,7 +37,8 @@ public class FlussConfigUtils {
3637
CLIENT_OPTIONS = extractConfigOptions("client.");
3738
}
3839

39-
private static Map<String, ConfigOption<?>> extractConfigOptions(String prefix) {
40+
@VisibleForTesting
41+
static Map<String, ConfigOption<?>> extractConfigOptions(String prefix) {
4042
Map<String, ConfigOption<?>> options = new HashMap<>();
4143
Field[] fields = ConfigOptions.class.getFields();
4244
// use Java reflection to collect all options matches the prefix
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/*
2+
* Copyright (c) 2025 Alibaba Group Holding Ltd.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.alibaba.fluss.config;
18+
19+
import org.junit.jupiter.api.Test;
20+
21+
import java.util.Map;
22+
23+
import static com.alibaba.fluss.config.FlussConfigUtils.CLIENT_OPTIONS;
24+
import static com.alibaba.fluss.config.FlussConfigUtils.TABLE_OPTIONS;
25+
import static com.alibaba.fluss.config.FlussConfigUtils.extractConfigOptions;
26+
import static org.assertj.core.api.Assertions.assertThat;
27+
28+
/** Test for {@link FlussConfigUtils}. */
29+
class FlussConfigUtilsTest {
30+
31+
@Test
32+
void testExtractOptions() {
33+
Map<String, ConfigOption<?>> tableOptions = extractConfigOptions("table.");
34+
assertThat(tableOptions).isNotEmpty();
35+
tableOptions.forEach(
36+
(k, v) -> {
37+
assertThat(k).startsWith("table.");
38+
assertThat(v.key()).startsWith("table.");
39+
});
40+
assertThat(tableOptions.size()).isEqualTo(TABLE_OPTIONS.size());
41+
42+
Map<String, ConfigOption<?>> clientOptions = extractConfigOptions("client.");
43+
assertThat(clientOptions).isNotEmpty();
44+
clientOptions.forEach(
45+
(k, v) -> {
46+
assertThat(k).startsWith("client.");
47+
assertThat(v.key()).startsWith("client.");
48+
});
49+
assertThat(clientOptions.size()).isEqualTo(CLIENT_OPTIONS.size());
50+
}
51+
}

fluss-test-coverage/pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,6 @@
263263
<exclude>com.alibaba.fluss.row.encode.RowEncoder</exclude>
264264
<exclude>com.alibaba.fluss.cluster.ServerNode</exclude>
265265
<exclude>com.alibaba.fluss.utils.crc.Crc32C</exclude>
266-
<exclude>com.alibaba.fluss.config.FlussConfigUtils</exclude>
267266
<exclude>com.alibaba.fluss.table.*</exclude>
268267
<exclude>com.alibaba.fluss.record.*</exclude>
269268
<exclude>com.alibaba.fluss.kv.*</exclude>

0 commit comments

Comments
 (0)