feat(items): add bound role control items
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package games.dmg.spigottyrant;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
final class RoleControlItemPolicyTest {
|
||||
@Test
|
||||
void runningRoleHoldersRequireOnlyTheirOwnControlItem() {
|
||||
UUID tyrantId = UUID.fromString("11111111-1111-1111-1111-111111111111");
|
||||
UUID vigilanteId = UUID.fromString("22222222-2222-2222-2222-222222222222");
|
||||
GameState game = new GameState(
|
||||
GameLifecycle.RUNNING, Optional.of(tyrantId), Optional.of(vigilanteId),
|
||||
Optional.empty(), Optional.empty(), Optional.empty(), Duration.ZERO,
|
||||
0, 0, Set.of()
|
||||
);
|
||||
|
||||
assertEquals(Optional.of(RoleControl.TYRANT),
|
||||
RoleControlItemPolicy.requiredRole(game, tyrantId));
|
||||
assertEquals(Optional.of(RoleControl.VIGILANTE),
|
||||
RoleControlItemPolicy.requiredRole(game, vigilanteId));
|
||||
assertEquals(Optional.empty(), RoleControlItemPolicy.requiredRole(game, UUID.randomUUID()));
|
||||
}
|
||||
|
||||
@Test
|
||||
void pausedRoleHolderRetainsControlItem() {
|
||||
UUID tyrantId = UUID.fromString("11111111-1111-1111-1111-111111111111");
|
||||
GameState game = new GameState(
|
||||
GameLifecycle.PAUSED, Optional.of(tyrantId), Optional.empty(),
|
||||
Optional.empty(), Optional.empty(), Optional.of(java.time.Instant.EPOCH),
|
||||
Duration.ZERO, 0, 0, Set.of()
|
||||
);
|
||||
|
||||
assertEquals(Optional.of(RoleControl.TYRANT),
|
||||
RoleControlItemPolicy.requiredRole(game, tyrantId));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user