Skip to content

Commit 73ff8a8

Browse files
committed
Draft Unit Testing
1 parent bbd23f6 commit 73ff8a8

File tree

3 files changed

+132
-1
lines changed

3 files changed

+132
-1
lines changed

build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ repositories {
3434
maven { url = 'https://repo.codemc.io/repository/codemc' }
3535
maven { url = 'https://repo.codemc.io/repository/codemc' }
3636
maven { url = 'https://m2.chew.pro/releases' }
37+
maven { url = 'https://m2.coly.dev/releases' }
3738
}
3839

3940
dependencies {
@@ -51,6 +52,9 @@ dependencies {
5152
implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '3.5.0'
5253
implementation group: 'org.jetbrains.exposed', name: 'exposed-core', version: '0.56.0'
5354
implementation group: 'org.jetbrains.exposed', name: 'exposed-jdbc', version: '0.56.0'
55+
56+
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.11.3'
57+
testImplementation group: 'dev.coly', name: 'JDATesting', version: '0.7.0'
5458
}
5559

5660
artifacts {

src/main/java/io/codemc/bot/CodeMCBot.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
public class CodeMCBot{
4444

4545
private final Logger logger = LoggerFactory.getLogger(CodeMCBot.class);
46-
private final ConfigHandler configHandler = new ConfigHandler();
46+
private ConfigHandler configHandler = new ConfigHandler();
4747

4848
public static void main(String[] args){
4949
try{
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
package io.codemc.bot.config;
2+
3+
import org.junit.platform.commons.logging.Logger;
4+
import org.junit.platform.commons.logging.LoggerFactory;
5+
6+
import java.util.Arrays;
7+
import java.util.List;
8+
import java.util.Map;
9+
import java.util.stream.Collectors;
10+
import java.util.stream.Stream;
11+
12+
public class TestConfigHandler extends ConfigHandler {
13+
14+
private static final Map<String, String> TEST_CONFIG = Stream.of(
15+
"bot_token test_token",
16+
"server 405915656039694336",
17+
"channels.request_access 1233971297185431582",
18+
"channels.accepted_requests 784119059138478080",
19+
"channels.rejected_requests 800423355551449098",
20+
"author_role 405918641859723294",
21+
"allowed_roles.applications.accept 405917902865170453,659568973079379971,1233971297185431582",
22+
"allowed_roles.applications.deny 405917902865170453,659568973079379971,1233971297185431582",
23+
"allowed_roles.commands.application 405917902865170453,659568973079379971,1233971297185431582",
24+
"allowed_roles.commands.codemc 405917902865170453,659568973079379971",
25+
"allowed_roles.commands.disable 405917902865170453",
26+
"allowed_roles.commands.msg 405917902865170453",
27+
"allowed_roles.commands.reload 405917902865170453",
28+
"users.owner 204232208049766400",
29+
"users.co_owners 143088571656437760,282975975954710528",
30+
"messages.accepted Accepted",
31+
"messages.denied Rejected",
32+
// Configuration
33+
"jenkins.url http://localhost:8080",
34+
"jenkins.username admin",
35+
"jenkins.token 00000000000000000000000000000000",
36+
37+
"nexus.url http://localhost:8081",
38+
"nexus.username admin",
39+
"nexus.password password",
40+
41+
"database.service mariadb",
42+
"database.host localhost",
43+
"database.port 3306",
44+
"database.database test",
45+
"database.username admin",
46+
"database.password password",
47+
"github token"
48+
).map(s -> s.split("\\s", 1)).collect(Collectors.toMap(s -> s[0], s -> s[1]));
49+
50+
private final Logger logger = LoggerFactory.getLogger(TestConfigHandler.class);
51+
52+
53+
@Override
54+
public boolean loadConfig() {
55+
return true;
56+
}
57+
58+
@Override
59+
public boolean reloadConfig() {
60+
return true;
61+
}
62+
63+
@Override
64+
public String getString(Object... path) {
65+
String[] args = Arrays.stream(path).map(Object::toString).toArray(String[]::new);
66+
String key = String.join(".", args);
67+
if (TEST_CONFIG.containsKey(key)) {
68+
return TEST_CONFIG.get(key);
69+
}
70+
logger.warn(() -> "Missing test config value for key: " + key);
71+
return null;
72+
}
73+
74+
@Override
75+
public long getLong(Object... path) {
76+
String value = getString(path);
77+
if (value == null) {
78+
return -1L;
79+
}
80+
try {
81+
return Long.parseLong(value);
82+
} catch (NumberFormatException ex) {
83+
logger.warn(() -> "Invalid long value for key: " + String.join(".", Arrays.stream(path).map(Object::toString).toArray(String[]::new)));
84+
return -1L;
85+
}
86+
}
87+
88+
@Override
89+
public int getInt(Object... path) {
90+
String value = getString(path);
91+
if (value == null) {
92+
return -1;
93+
}
94+
try {
95+
return Integer.parseInt(value);
96+
} catch (NumberFormatException ex) {
97+
logger.warn(() -> "Invalid int value for key: " + String.join(".", Arrays.stream(path).map(Object::toString).toArray(String[]::new)));
98+
return -1;
99+
}
100+
}
101+
102+
@Override
103+
public List<String> getStringList(Object... path) {
104+
String value = getString(path);
105+
if (value == null) {
106+
return null;
107+
}
108+
return Arrays.asList(value.split(","));
109+
}
110+
111+
@Override
112+
public List<Long> getLongList(Object... path) {
113+
String value = getString(path);
114+
if (value == null) {
115+
return null;
116+
}
117+
try {
118+
return Arrays.stream(value.split(",")).map(Long::parseLong).toList();
119+
} catch (NumberFormatException ex) {
120+
logger.warn(() -> "Invalid long list value for key: " + String.join(".", Arrays.stream(path).map(Object::toString).toArray(String[]::new)));
121+
return null;
122+
}
123+
}
124+
125+
126+
127+
}

0 commit comments

Comments
 (0)