test: add IgnoreService and SpyService unit tests

This commit is contained in:
loki5512344 2026-07-05 16:19:31 +02:00
parent 09689ae799
commit 4737d52cdd
2 changed files with 197 additions and 0 deletions

View file

@ -0,0 +1,122 @@
package com.loki.lochat.core.service.messaging;
import org.bukkit.plugin.java.JavaPlugin;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
import java.util.UUID;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
class IgnoreServiceTest {
private JavaPlugin plugin;
private IgnoreService ignoreService;
@BeforeEach
void setUp() {
plugin = mock(JavaPlugin.class);
ignoreService = new IgnoreService(plugin);
}
@AfterEach
void tearDown() {
plugin = null;
ignoreService = null;
}
@Test
void isIgnoring_notIgnored() {
try (MockedStatic<com.loki.lochat.utils.platform.FoliaUtil> ignored = Mockito.mockStatic(com.loki.lochat.utils.platform.FoliaUtil.class)) {
UUID player = UUID.randomUUID();
UUID target = UUID.randomUUID();
assertFalse(ignoreService.isIgnoring(player, target));
}
}
@Test
void addIgnore_thenIsIgnoring() {
try (MockedStatic<com.loki.lochat.utils.platform.FoliaUtil> fu = Mockito.mockStatic(com.loki.lochat.utils.platform.FoliaUtil.class)) {
UUID player = UUID.randomUUID();
UUID target = UUID.randomUUID();
assertTrue(ignoreService.addIgnore(player, target));
assertTrue(ignoreService.isIgnoring(player, target));
}
}
@Test
void addIgnore_duplicateReturnsFalse() {
try (MockedStatic<com.loki.lochat.utils.platform.FoliaUtil> fu = Mockito.mockStatic(com.loki.lochat.utils.platform.FoliaUtil.class)) {
UUID player = UUID.randomUUID();
UUID target = UUID.randomUUID();
assertTrue(ignoreService.addIgnore(player, target));
assertFalse(ignoreService.addIgnore(player, target));
}
}
@Test
void removeIgnore() {
try (MockedStatic<com.loki.lochat.utils.platform.FoliaUtil> fu = Mockito.mockStatic(com.loki.lochat.utils.platform.FoliaUtil.class)) {
UUID player = UUID.randomUUID();
UUID target = UUID.randomUUID();
ignoreService.addIgnore(player, target);
assertTrue(ignoreService.removeIgnore(player, target));
assertFalse(ignoreService.isIgnoring(player, target));
}
}
@Test
void removeIgnore_notIgnored() {
try (MockedStatic<com.loki.lochat.utils.platform.FoliaUtil> fu = Mockito.mockStatic(com.loki.lochat.utils.platform.FoliaUtil.class)) {
assertFalse(ignoreService.removeIgnore(UUID.randomUUID(), UUID.randomUUID()));
}
}
@Test
void getIgnoredCount() {
try (MockedStatic<com.loki.lochat.utils.platform.FoliaUtil> fu = Mockito.mockStatic(com.loki.lochat.utils.platform.FoliaUtil.class)) {
UUID player = UUID.randomUUID();
assertEquals(0, ignoreService.getIgnoredCount(player));
ignoreService.addIgnore(player, UUID.randomUUID());
assertEquals(1, ignoreService.getIgnoredCount(player));
ignoreService.addIgnore(player, UUID.randomUUID());
assertEquals(2, ignoreService.getIgnoredCount(player));
}
}
@Test
void getIgnoredPlayers_returnsSet() {
try (MockedStatic<com.loki.lochat.utils.platform.FoliaUtil> fu = Mockito.mockStatic(com.loki.lochat.utils.platform.FoliaUtil.class)) {
UUID player = UUID.randomUUID();
UUID target = UUID.randomUUID();
ignoreService.addIgnore(player, target);
assertTrue(ignoreService.getIgnoredPlayers(player).contains(target));
}
}
@Test
void clearIgnores() {
try (MockedStatic<com.loki.lochat.utils.platform.FoliaUtil> fu = Mockito.mockStatic(com.loki.lochat.utils.platform.FoliaUtil.class)) {
UUID player = UUID.randomUUID();
ignoreService.addIgnore(player, UUID.randomUUID());
ignoreService.clearIgnores(player);
assertEquals(0, ignoreService.getIgnoredCount(player));
}
}
@Test
void multiplePlayersIndepedent() {
try (MockedStatic<com.loki.lochat.utils.platform.FoliaUtil> fu = Mockito.mockStatic(com.loki.lochat.utils.platform.FoliaUtil.class)) {
UUID a = UUID.randomUUID();
UUID b = UUID.randomUUID();
UUID target = UUID.randomUUID();
ignoreService.addIgnore(a, target);
assertTrue(ignoreService.isIgnoring(a, target));
assertFalse(ignoreService.isIgnoring(b, target));
}
}
}

View file

@ -0,0 +1,75 @@
package com.loki.lochat.core.service.messaging;
import com.loki.lochat.config.MessageConfig;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.UUID;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
class SpyServiceTest {
private MessageConfig messageConfig;
private SpyService spyService;
@BeforeEach
void setUp() {
messageConfig = mock(MessageConfig.class);
spyService = new SpyService(messageConfig);
}
@Test
void isSpying_defaultFalse() {
assertFalse(spyService.isSpying(UUID.randomUUID()));
}
@Test
void toggleSpy_turnsOn() {
UUID player = UUID.randomUUID();
assertTrue(spyService.toggleSpy(player));
assertTrue(spyService.isSpying(player));
}
@Test
void toggleSpy_turnsOff() {
UUID player = UUID.randomUUID();
spyService.toggleSpy(player);
assertFalse(spyService.toggleSpy(player));
assertFalse(spyService.isSpying(player));
}
@Test
void toggleSpy_toggleOnOff() {
UUID player = UUID.randomUUID();
assertTrue(spyService.toggleSpy(player));
assertFalse(spyService.toggleSpy(player));
assertTrue(spyService.toggleSpy(player));
assertTrue(spyService.isSpying(player));
}
@Test
void removeSpy_removesFromSet() {
UUID player = UUID.randomUUID();
spyService.toggleSpy(player);
spyService.removeSpy(player);
assertFalse(spyService.isSpying(player));
}
@Test
void removeSpy_notSpying() {
spyService.removeSpy(UUID.randomUUID());
assertFalse(spyService.isSpying(UUID.randomUUID()));
}
@Test
void multiplePlayersIndepedent() {
UUID a = UUID.randomUUID();
UUID b = UUID.randomUUID();
spyService.toggleSpy(a);
assertTrue(spyService.isSpying(a));
assertFalse(spyService.isSpying(b));
}
}