ProtocolLib/src/test/java/com/comphenix/protocol/events/SerializedOfflinePlayerTest...

71 lines
2.6 KiB
Java

package com.comphenix.protocol.events;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.when;
import java.util.UUID;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
public class SerializedOfflinePlayerTest {
private static final String name = "playerName";
private static final long firstPlayed = 1000L;
private static final long lastPlayed = firstPlayed + 100L;
private static final boolean isOp = false;
private static final boolean playedBefore = true;
private static final boolean whitelisted = true;
@Mock
static OfflinePlayer offlinePlayer;
private static UUID uuid;
private static SerializedOfflinePlayer serializedOfflinePlayer;
@BeforeEach
public void initMocks() {
MockitoAnnotations.openMocks(this);
uuid = UUID.randomUUID();
when(offlinePlayer.getName()).thenReturn(name);
when(offlinePlayer.getUniqueId()).thenReturn(uuid);
when(offlinePlayer.getFirstPlayed()).thenReturn(firstPlayed);
when(offlinePlayer.getLastPlayed()).thenReturn(lastPlayed);
when(offlinePlayer.isOp()).thenReturn(isOp);
when(offlinePlayer.hasPlayedBefore()).thenReturn(playedBefore);
when(offlinePlayer.isWhitelisted()).thenReturn(whitelisted);
serializedOfflinePlayer = SerializedOfflinePlayer.init(offlinePlayer);
}
@Test
public void getProxyPlayer() {
Player player = serializedOfflinePlayer.getProxyPlayer();
assertNotNull(player);
// getDisplayName only works for online players.
assertThrows(UnsupportedOperationException.class, player::getDisplayName);
assertEquals(uuid, player.getUniqueId());
assertEquals(name, player.getName());
assertEquals(firstPlayed, player.getFirstPlayed());
assertEquals(lastPlayed, player.getLastPlayed());
assertEquals(isOp, player.isOp());
assertEquals(playedBefore, player.hasPlayedBefore());
assertEquals(whitelisted, player.isWhitelisted());
}
@Test
public void getSecondProxyPlayer() {
// Make sure that the proxyPlayer generation doesn't work only once.
Player player = serializedOfflinePlayer.getProxyPlayer();
assertNotNull(player);
assertEquals(uuid, player.getUniqueId());
}
}