34 lines
1.5 KiB
Java
34 lines
1.5 KiB
Java
package games.dmg.spigotstealth;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.UUID;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
class KnownPlayerResolverTest {
|
|
@Test
|
|
void resolvesKnownOfflinePlayerByExactNameOrUuid() {
|
|
UUID playerId = UUID.randomUUID();
|
|
PlayerStealthState player = PlayerStealthState.empty(playerId).withLastKnownName("Alex");
|
|
PersistentStealthState state = new PersistentStealthState(Map.of(playerId, player), Map.of());
|
|
KnownPlayerResolver resolver = new KnownPlayerResolver(() -> state, List::of);
|
|
assertEquals(playerId, resolver.resolve("alex").player().playerId());
|
|
assertEquals(playerId, resolver.resolve(playerId.toString()).player().playerId());
|
|
}
|
|
|
|
@Test
|
|
void reportsAmbiguousAndUnknownNamesWithoutCreatingRecords() {
|
|
UUID first = UUID.randomUUID();
|
|
UUID second = UUID.randomUUID();
|
|
PersistentStealthState state = new PersistentStealthState(Map.of(
|
|
first, PlayerStealthState.empty(first).withLastKnownName("Alex"),
|
|
second, PlayerStealthState.empty(second).withLastKnownName("ALEX")), Map.of());
|
|
KnownPlayerResolver resolver = new KnownPlayerResolver(() -> state, List::of);
|
|
assertEquals(KnownPlayerResolver.Status.AMBIGUOUS, resolver.resolve("alex").status());
|
|
assertEquals(KnownPlayerResolver.Status.UNKNOWN, resolver.resolve("nobody").status());
|
|
assertEquals(2, state.players().size());
|
|
}
|
|
}
|