diff --git a/src/test/java/us/tastybento/bskyblock/util/teleport/SafeTeleportBuilderTest.java b/src/test/java/us/tastybento/bskyblock/util/teleport/SafeTeleportBuilderTest.java new file mode 100644 index 000000000..6a6491c2a --- /dev/null +++ b/src/test/java/us/tastybento/bskyblock/util/teleport/SafeTeleportBuilderTest.java @@ -0,0 +1,143 @@ +package us.tastybento.bskyblock.util.teleport; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import us.tastybento.bskyblock.BSkyBlock; +import us.tastybento.bskyblock.api.user.User; +import us.tastybento.bskyblock.database.objects.Island; +import us.tastybento.bskyblock.managers.LocalesManager; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(SafeTeleportBuilder.class) +public class SafeTeleportBuilderTest { + + @Mock + private SafeSpotTeleport sst; + @Mock + private BSkyBlock plugin; + @Mock + private Player player; + @Mock + private Location loc; + + @InjectMocks + private SafeTeleportBuilder stb; + + @Before + public void setUp() throws Exception { + PowerMockito.whenNew(SafeSpotTeleport.class).withAnyArguments().thenReturn(sst); + // Users + User.setPlugin(plugin); + // Locales - final + LocalesManager lm = mock(LocalesManager.class); + when(plugin.getLocalesManager()).thenReturn(lm); + when(lm.get(any(), any())).thenReturn("mock translation"); + } + + @Test + public void test() throws Exception { + stb = new SafeTeleportBuilder(plugin); + stb.build(); + SafeSpotTeleport ttt = new SafeSpotTeleport(plugin, player, loc, null, false, 0); + assertEquals(sst, ttt); + } + + @Test + public void testSafeTeleportBuilder() { + stb = new SafeTeleportBuilder(plugin); + // Should fail because no data + assertNull(stb.build()); + } + + @Test + public void testEntity() throws Exception { + // Start builder + stb = new SafeTeleportBuilder(plugin); + // Add entity + stb.entity(player); + // Test for error + assertNull(stb.build()); + // Add location + stb.location(loc); + // Build - expect success + SafeSpotTeleport result = stb.build(); + assertEquals(sst, result); + } + + @Test + public void testIsland() { + // Start builder + SafeTeleportBuilder stb = new SafeTeleportBuilder(plugin); + // Add entity + stb.entity(player); + // Add island + Island island = mock(Island.class); + when(island.getCenter()).thenReturn(loc); + stb.island(island); + // Build - expect success + SafeSpotTeleport result = stb.build(); + assertEquals(sst, result); + } + + @Test + public void testHomeNumber() { + // Start builder + SafeTeleportBuilder stb = new SafeTeleportBuilder(plugin); + // Add entity + stb.entity(player); + // Add location + stb.location(loc); + // Add home + stb.homeNumber(10); + // Build - expect success + SafeSpotTeleport result = stb.build(); + assertEquals(sst, result); + + } + + @Test + public void testPortal() { + // Start builder + SafeTeleportBuilder stb = new SafeTeleportBuilder(plugin); + // Add entity + stb.entity(player); + // Add location + stb.location(loc); + // Portal + stb.portal(); + // Build - expect success + SafeSpotTeleport result = stb.build(); + assertEquals(sst, result); + } + + @Test + public void testFailureMessage() { + // Start builder + SafeTeleportBuilder stb = new SafeTeleportBuilder(plugin); + // Add entity + stb.entity(player); + // Add location + stb.location(loc); + // Add failure + stb.failureMessage("testing 123"); + // Build - expect success + SafeSpotTeleport result = stb.build(); + assertEquals(sst, result); + } + +}