2021-01-04 06:24:34 +01:00
|
|
|
package com.comphenix.protocol.events;
|
|
|
|
|
2022-02-20 12:16:11 +01:00
|
|
|
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;
|
2021-01-04 06:24:34 +01:00
|
|
|
import org.bukkit.OfflinePlayer;
|
|
|
|
import org.bukkit.entity.Player;
|
2022-02-20 12:16:11 +01:00
|
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
|
|
import org.junit.jupiter.api.Test;
|
2021-01-04 06:24:34 +01:00
|
|
|
import org.mockito.Mock;
|
|
|
|
import org.mockito.MockitoAnnotations;
|
|
|
|
|
|
|
|
public class SerializedOfflinePlayerTest {
|
|
|
|
|
2022-02-20 12:16:11 +01:00
|
|
|
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;
|
2021-01-04 06:24:34 +01:00
|
|
|
|
2022-02-20 12:16:11 +01:00
|
|
|
@BeforeEach
|
|
|
|
public void initMocks() {
|
|
|
|
MockitoAnnotations.openMocks(this);
|
2021-01-04 06:24:34 +01:00
|
|
|
|
2022-02-20 12:16:11 +01:00
|
|
|
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);
|
2021-01-04 06:24:34 +01:00
|
|
|
|
2022-02-20 12:16:11 +01:00
|
|
|
serializedOfflinePlayer = new SerializedOfflinePlayer(offlinePlayer);
|
|
|
|
}
|
2021-01-04 06:24:34 +01:00
|
|
|
|
2022-02-20 12:16:11 +01:00
|
|
|
@Test
|
|
|
|
public void getProxyPlayer() {
|
|
|
|
Player player = serializedOfflinePlayer.getProxyPlayer();
|
|
|
|
assertNotNull(player);
|
2021-01-04 06:24:34 +01:00
|
|
|
|
2022-02-20 12:16:11 +01:00
|
|
|
// getDisplayName only works for online players.
|
|
|
|
assertThrows(UnsupportedOperationException.class, player::getDisplayName);
|
2021-01-04 06:24:34 +01:00
|
|
|
|
2022-02-20 12:16:11 +01:00
|
|
|
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());
|
|
|
|
}
|
2021-01-04 06:24:34 +01:00
|
|
|
|
2022-02-20 12:16:11 +01:00
|
|
|
@Test
|
|
|
|
public void getSecondProxyPlayer() {
|
|
|
|
// Make sure that the proxyPlayer generation doesn't work only once.
|
|
|
|
Player player = serializedOfflinePlayer.getProxyPlayer();
|
|
|
|
assertNotNull(player);
|
2021-01-04 06:24:34 +01:00
|
|
|
|
2022-02-20 12:16:11 +01:00
|
|
|
assertEquals(uuid, player.getUniqueId());
|
|
|
|
}
|
2021-01-04 06:24:34 +01:00
|
|
|
}
|