Skip to content

Instantly share code, notes, and snippets.

@t3hk0d3
Created June 19, 2012 00:55
Show Gist options
  • Save t3hk0d3/2951697 to your computer and use it in GitHub Desktop.
Save t3hk0d3/2951697 to your computer and use it in GitHub Desktop.
package ru.tehkode.chatmanager.placeholders;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.junit.Before;
import org.junit.Test;
import ru.tehkode.chatmanager.Message;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.junit.Assert.*;
public class PlayerPlaceholderTest {
Player player;
@Before
public void setUp() throws Exception {
player = mock(Player.class);
World world = mock(World.class);
// Mock player
when(player.getName()).thenReturn("testPlayer");
when(player.getDisplayName()).thenReturn("testDisplayPlayer");
when(player.getWorld()).thenReturn(world);
when(player.getHealth()).thenReturn(25); // Should give 50%
when(player.getMaxHealth()).thenReturn(50);
// Mock world
when(world.getName()).thenReturn("TestWorld");
}
@Test
public void testRun() throws Exception {
PlayerPlaceholder placeholder = new PlayerPlaceholder();
// Mock message
Message message = mock(Message.class);
when(message.getSender()).thenReturn(player);
when(message.getMessage()).thenReturn("--> message here <--");
// %player[name]
assertEquals("testPlayer", placeholder.run("player", "name", message));
verify(player).getName();
// Default call (%player)
assertEquals("testDisplayPlayer", placeholder.run("player", null, message));
verify(player).getDisplayName();
// %player[displayname]
assertEquals("testDisplayPlayer", placeholder.run("player", "displayname", message));
verify(player).getDisplayName();
// %player[world]
assertEquals("TestWorld", placeholder.run("player", "world", message));
verify(player).getWorld();
// %player[health]
assertEquals("50%", placeholder.run("player", "health", message));
verify(player).getHealth();
verify(player).getMaxHealth();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment