Skip to content

Commit 8268e10

Browse files
committed
add PlayerOptionResolverTest
1 parent faafad3 commit 8268e10

1 file changed

Lines changed: 96 additions & 0 deletions

File tree

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
package io.wdsj.asw.bukkit.permission.option;
2+
3+
import io.wdsj.asw.bukkit.type.ProcessMethod;
4+
import org.junit.jupiter.api.Test;
5+
6+
import java.util.List;
7+
8+
import static org.junit.jupiter.api.Assertions.assertEquals;
9+
import static org.junit.jupiter.api.Assertions.assertFalse;
10+
import static org.junit.jupiter.api.Assertions.assertTrue;
11+
12+
class PlayerOptionResolverTest {
13+
@Test
14+
void higherPriorityNumberOverridesInheritedParentValue() {
15+
List<String> permissions = List.of(
16+
"advancedsensitivewords.option.chat.anti-spam.history-size.value.8",
17+
"advancedsensitivewords.option.chat.anti-spam.history-size.value.4.priority.100"
18+
);
19+
20+
assertEquals(4, PlayerOptionResolver.resolveInteger(
21+
PlayerOptions.CHAT_ANTI_SPAM_HISTORY_SIZE,
22+
6,
23+
permissions
24+
));
25+
}
26+
27+
@Test
28+
void samePriorityNumberUsesMaximumValue() {
29+
List<String> permissions = List.of(
30+
"advancedsensitivewords.option.chat.anti-spam.history-size.value.4.priority.20",
31+
"advancedsensitivewords.option.chat.anti-spam.history-size.value.8.priority.20"
32+
);
33+
34+
assertEquals(8, PlayerOptionResolver.resolveInteger(
35+
PlayerOptions.CHAT_ANTI_SPAM_HISTORY_SIZE,
36+
6,
37+
permissions
38+
));
39+
}
40+
41+
@Test
42+
void higherPriorityDefaultFallsBackToGlobalNumber() {
43+
List<String> permissions = List.of(
44+
"advancedsensitivewords.option.chat.anti-spam.history-size.value.8",
45+
"advancedsensitivewords.option.chat.anti-spam.history-size.default.priority.100"
46+
);
47+
48+
assertEquals(6, PlayerOptionResolver.resolveInteger(
49+
PlayerOptions.CHAT_ANTI_SPAM_HISTORY_SIZE,
50+
6,
51+
permissions
52+
));
53+
}
54+
55+
@Test
56+
void booleanDisableWinsAtSamePriority() {
57+
List<String> permissions = List.of(
58+
"advancedsensitivewords.option.chat.anti-spam.enabled.enable.priority.10",
59+
"advancedsensitivewords.option.chat.anti-spam.enabled.disable.priority.10"
60+
);
61+
62+
assertFalse(PlayerOptionResolver.resolveBoolean(
63+
PlayerOptions.CHAT_ANTI_SPAM_ENABLED,
64+
true,
65+
permissions
66+
));
67+
}
68+
69+
@Test
70+
void higherPriorityEnableBeatsLowerPriorityDisable() {
71+
List<String> permissions = List.of(
72+
"advancedsensitivewords.option.chat.anti-spam.enabled.disable",
73+
"advancedsensitivewords.option.chat.anti-spam.enabled.enable.priority.100"
74+
);
75+
76+
assertTrue(PlayerOptionResolver.resolveBoolean(
77+
PlayerOptions.CHAT_ANTI_SPAM_ENABLED,
78+
false,
79+
permissions
80+
));
81+
}
82+
83+
@Test
84+
void methodCancelWinsAtSamePriority() {
85+
List<String> permissions = List.of(
86+
"advancedsensitivewords.option.chat.method.replace.priority.5",
87+
"advancedsensitivewords.option.chat.method.cancel.priority.5"
88+
);
89+
90+
assertEquals(ProcessMethod.CANCEL, PlayerOptionResolver.resolveMethod(
91+
PlayerOptions.CHAT_METHOD,
92+
ProcessMethod.REPLACE,
93+
permissions
94+
));
95+
}
96+
}

0 commit comments

Comments
 (0)