Skip to content

Commit 7343b20

Browse files
committed
test: add CooldownManager unit tests
1 parent 005ac5d commit 7343b20

1 file changed

Lines changed: 74 additions & 0 deletions

File tree

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package dev.objz.commandbridge.velocity.util;
2+
3+
import dev.objz.commandbridge.logging.Log;
4+
import org.junit.jupiter.api.BeforeAll;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.time.Duration;
8+
import java.util.UUID;
9+
10+
import static org.junit.jupiter.api.Assertions.assertFalse;
11+
import static org.junit.jupiter.api.Assertions.assertTrue;
12+
13+
class CooldownManagerTest {
14+
15+
private static final UUID TEST_UUID = UUID.fromString("00000000-0000-0000-0000-000000000001");
16+
17+
@BeforeAll
18+
static void installLog() {
19+
try {
20+
Log.install(java.util.logging.Logger.getLogger("test"));
21+
} catch (IllegalStateException e) {
22+
// Log already installed
23+
}
24+
}
25+
26+
@Test
27+
void notOnCooldownWhenNotSet() {
28+
CooldownManager manager = new CooldownManager();
29+
assertFalse(manager.isOnCooldown("script", TEST_UUID));
30+
}
31+
32+
@Test
33+
void onCooldownAfterSet() {
34+
CooldownManager manager = new CooldownManager();
35+
manager.setCooldown("script", TEST_UUID, Duration.ofSeconds(60));
36+
assertTrue(manager.isOnCooldown("script", TEST_UUID));
37+
}
38+
39+
@Test
40+
void remainingPositiveWhenActive() {
41+
CooldownManager manager = new CooldownManager();
42+
manager.setCooldown("script", TEST_UUID, Duration.ofSeconds(60));
43+
Duration remaining = manager.getRemaining("script", TEST_UUID);
44+
assertTrue(remaining.compareTo(Duration.ZERO) > 0);
45+
}
46+
47+
@Test
48+
void remainingZeroWhenNotSet() {
49+
CooldownManager manager = new CooldownManager();
50+
Duration remaining = manager.getRemaining("script", TEST_UUID);
51+
assertTrue(remaining.equals(Duration.ZERO));
52+
}
53+
54+
@Test
55+
void zeroDurationIgnored() {
56+
CooldownManager manager = new CooldownManager();
57+
manager.setCooldown("script", TEST_UUID, Duration.ZERO);
58+
assertFalse(manager.isOnCooldown("script", TEST_UUID));
59+
}
60+
61+
@Test
62+
void negativeDurationIgnored() {
63+
CooldownManager manager = new CooldownManager();
64+
manager.setCooldown("script", TEST_UUID, Duration.ofSeconds(-1));
65+
assertFalse(manager.isOnCooldown("script", TEST_UUID));
66+
}
67+
68+
@Test
69+
void independentScriptCooldowns() {
70+
CooldownManager manager = new CooldownManager();
71+
manager.setCooldown("scriptA", TEST_UUID, Duration.ofSeconds(60));
72+
assertFalse(manager.isOnCooldown("scriptB", TEST_UUID));
73+
}
74+
}

0 commit comments

Comments
 (0)