diff --git a/pom.xml b/pom.xml index 92d51220..45a66ad3 100644 --- a/pom.xml +++ b/pom.xml @@ -348,24 +348,9 @@ test - org.powermock - powermock-module-junit4 - 2.0.9 - jar - test - - - org.powermock - powermock-api-easymock - 2.0.9 - jar - test - - - org.powermock - powermock-api-mockito2 - 2.0.9 - jar + org.mockito + mockito-core + 3.11.2 test diff --git a/src/test/java/com/onarandombox/MultiverseCore/TestDebugMode.java b/src/test/java/com/onarandombox/MultiverseCore/TestDebugMode.java index da2cd237..aa6bc92d 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/TestDebugMode.java +++ b/src/test/java/com/onarandombox/MultiverseCore/TestDebugMode.java @@ -20,9 +20,6 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.powermock.core.classloader.annotations.PowerMockIgnore; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import java.io.File; @@ -31,9 +28,6 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -@RunWith(PowerMockRunner.class) -@PrepareForTest({ MultiverseCore.class, PluginDescriptionFile.class, JavaPluginLoader.class}) -@PowerMockIgnore("javax.script.*") public class TestDebugMode { TestInstanceCreator creator; Server mockServer; diff --git a/src/test/java/com/onarandombox/MultiverseCore/TestEntitySpawnRules.java b/src/test/java/com/onarandombox/MultiverseCore/TestEntitySpawnRules.java index 6982b024..cd718ab1 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/TestEntitySpawnRules.java +++ b/src/test/java/com/onarandombox/MultiverseCore/TestEntitySpawnRules.java @@ -20,9 +20,6 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.powermock.core.classloader.annotations.PowerMockIgnore; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import java.lang.reflect.Field; import java.util.Arrays; @@ -33,9 +30,6 @@ import static junit.framework.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.*; -@RunWith(PowerMockRunner.class) -@PrepareForTest({ MultiverseCore.class, PluginDescriptionFile.class, JavaPluginLoader.class}) -@PowerMockIgnore("javax.script.*") public class TestEntitySpawnRules { TestInstanceCreator creator; MultiverseCore core; diff --git a/src/test/java/com/onarandombox/MultiverseCore/TestEntryFeeConversion.java b/src/test/java/com/onarandombox/MultiverseCore/TestEntryFeeConversion.java index 110e9dd3..b316f655 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/TestEntryFeeConversion.java +++ b/src/test/java/com/onarandombox/MultiverseCore/TestEntryFeeConversion.java @@ -8,18 +8,12 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.powermock.core.classloader.annotations.PowerMockIgnore; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import java.util.HashMap; import java.util.Map; import static org.junit.Assert.*; -@RunWith(PowerMockRunner.class) -@PrepareForTest({ MultiverseCore.class, PluginDescriptionFile.class, JavaPluginLoader.class}) -@PowerMockIgnore("javax.script.*") public class TestEntryFeeConversion { private TestInstanceCreator creator; diff --git a/src/test/java/com/onarandombox/MultiverseCore/TestModifyCommand.java b/src/test/java/com/onarandombox/MultiverseCore/TestModifyCommand.java index 26b21c8a..0a57dd63 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/TestModifyCommand.java +++ b/src/test/java/com/onarandombox/MultiverseCore/TestModifyCommand.java @@ -12,18 +12,11 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.powermock.core.classloader.annotations.PowerMockIgnore; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import static org.junit.Assert.*; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({ MultiverseCore.class, PluginDescriptionFile.class, JavaPluginLoader.class }) -@PowerMockIgnore("javax.script.*") public class TestModifyCommand { TestInstanceCreator creator; Server mockServer; diff --git a/src/test/java/com/onarandombox/MultiverseCore/TestWorldProperties.java b/src/test/java/com/onarandombox/MultiverseCore/TestWorldProperties.java index c415b3db..1b489114 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/TestWorldProperties.java +++ b/src/test/java/com/onarandombox/MultiverseCore/TestWorldProperties.java @@ -45,10 +45,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.internal.verification.VerificationModeFactory; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PowerMockIgnore; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import java.io.File; @@ -57,12 +53,6 @@ import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.*; -@RunWith(PowerMockRunner.class) -@PrepareForTest({ PluginManager.class, MultiverseCore.class, Permission.class, Bukkit.class, - WeatherChangeEvent.class, ThunderChangeEvent.class, AsyncPlayerChatEvent.class, - PlayerJoinEvent.class, PlayerRespawnEvent.class, EntityRegainHealthEvent.class, - FoodLevelChangeEvent.class, WorldManager.class, PluginDescriptionFile.class, JavaPluginLoader.class }) -@PowerMockIgnore("javax.script.*") public class TestWorldProperties { private TestInstanceCreator creator; private MultiverseCore core; @@ -366,36 +356,36 @@ public class TestWorldProperties { when(mockPlayer.hasPlayedBefore()).thenReturn(true); when(mockPlayer.hasPermission("multiverse.access.world")).thenReturn(true); when(mockPlayer.getName()).thenReturn("MultiverseMan"); - playerChatEvent = PowerMockito.mock(AsyncPlayerChatEvent.class); + playerChatEvent = mock(AsyncPlayerChatEvent.class); when(playerChatEvent.getPlayer()).thenReturn(mockPlayer); when(playerChatEvent.getFormat()).thenReturn("format"); // player join mockNewPlayer = mock(Player.class); when(mockNewPlayer.hasPlayedBefore()).thenReturn(false); - playerJoinEvent = PowerMockito.mock(PlayerJoinEvent.class); + playerJoinEvent = mock(PlayerJoinEvent.class); when(playerJoinEvent.getPlayer()).thenReturn(mockPlayer); - playerNewJoinEvent = PowerMockito.mock(PlayerJoinEvent.class); + playerNewJoinEvent = mock(PlayerJoinEvent.class); when(playerNewJoinEvent.getPlayer()).thenReturn(mockNewPlayer); // player respawn - playerRespawnBed = PowerMockito.mock(PlayerRespawnEvent.class); + playerRespawnBed = mock(PlayerRespawnEvent.class); when(playerRespawnBed.getPlayer()).thenReturn(mockPlayer); when(playerRespawnBed.isBedSpawn()).thenReturn(true); - playerRespawnNormal = PowerMockito.mock(PlayerRespawnEvent.class); + playerRespawnNormal = mock(PlayerRespawnEvent.class); when(playerRespawnNormal.getPlayer()).thenReturn(mockPlayer); when(playerRespawnNormal.isBedSpawn()).thenReturn(false); //// Entity events mockHumanEntity = mock(HumanEntity.class); // entity regain health - entityRegainHealthEvent = PowerMockito.mock(EntityRegainHealthEvent.class); + entityRegainHealthEvent = mock(EntityRegainHealthEvent.class); when(entityRegainHealthEvent.getRegainReason()).thenReturn(RegainReason.REGEN); when(mockHumanEntity.getLocation()).thenReturn(new Location(world, 0, 0, 0)); when(entityRegainHealthEvent.getEntity()).thenReturn(mockHumanEntity); // entity food level change event - entityFoodLevelChangeEvent = PowerMockito.mock(FoodLevelChangeEvent.class); + entityFoodLevelChangeEvent = mock(FoodLevelChangeEvent.class); // this won't do anything since we're not mocking a player, // but the plugin should be able to handle this! when(entityFoodLevelChangeEvent.getEntity()).thenReturn(mockHumanEntity); - entityFoodLevelRiseEvent = PowerMockito.mock(FoodLevelChangeEvent.class); + entityFoodLevelRiseEvent = mock(FoodLevelChangeEvent.class); when(mockPlayer.getFoodLevel()).thenReturn(2); when(entityFoodLevelRiseEvent.getEntity()).thenReturn(mockPlayer); when(entityFoodLevelRiseEvent.getFoodLevel()).thenReturn(3); diff --git a/src/test/java/com/onarandombox/MultiverseCore/TestWorldPurger.java b/src/test/java/com/onarandombox/MultiverseCore/TestWorldPurger.java index 10c5edfe..028f1a05 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/TestWorldPurger.java +++ b/src/test/java/com/onarandombox/MultiverseCore/TestWorldPurger.java @@ -14,18 +14,12 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.powermock.core.classloader.annotations.PowerMockIgnore; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import java.util.Arrays; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.*; -@RunWith(PowerMockRunner.class) -@PrepareForTest({ MultiverseCore.class, PluginDescriptionFile.class, JavaPluginLoader.class }) -@PowerMockIgnore("javax.script.*") public class TestWorldPurger { TestInstanceCreator creator; MultiverseCore core; diff --git a/src/test/java/com/onarandombox/MultiverseCore/TestWorldStuff.java b/src/test/java/com/onarandombox/MultiverseCore/TestWorldStuff.java index 05957c84..eb0d9f29 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/TestWorldStuff.java +++ b/src/test/java/com/onarandombox/MultiverseCore/TestWorldStuff.java @@ -32,19 +32,12 @@ import org.junit.runner.RunWith; import org.mockito.ArgumentMatchers; import org.mockito.Matchers; import org.mockito.internal.verification.VerificationModeFactory; -import org.powermock.core.classloader.annotations.PowerMockIgnore; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import java.io.File; import static junit.framework.Assert.*; import static org.mockito.Mockito.*; -@RunWith(PowerMockRunner.class) -@PrepareForTest({ PluginManager.class, MultiverseCore.class, Permission.class, Bukkit.class, WorldManager.class, - PluginDescriptionFile.class, JavaPluginLoader.class }) -@PowerMockIgnore("javax.script.*") public class TestWorldStuff { private TestInstanceCreator creator; diff --git a/src/test/java/com/onarandombox/MultiverseCore/utils/TestInstanceCreator.java b/src/test/java/com/onarandombox/MultiverseCore/utils/TestInstanceCreator.java index 6bb5d85b..b36f9366 100644 --- a/src/test/java/com/onarandombox/MultiverseCore/utils/TestInstanceCreator.java +++ b/src/test/java/com/onarandombox/MultiverseCore/utils/TestInstanceCreator.java @@ -28,12 +28,9 @@ import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPluginLoader; import org.bukkit.scheduler.BukkitScheduler; import org.mockito.ArgumentMatchers; +import org.mockito.internal.util.reflection.ReflectionMemberAccessor; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; -import org.powermock.api.easymock.PowerMock; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.MockGateway; -import org.powermock.reflect.Whitebox; import java.io.File; import java.lang.reflect.Field; @@ -52,6 +49,7 @@ import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.when; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.doAnswer; public class TestInstanceCreator { @@ -69,22 +67,20 @@ public class TestInstanceCreator { pluginDirectory.mkdirs(); assertTrue(pluginDirectory.exists()); - MockGateway.MOCK_STANDARD_METHODS = false; - // Initialize the Mock server. mockServer = mock(Server.class); - JavaPluginLoader mockPluginLoader = PowerMock.createMock(JavaPluginLoader.class); - Whitebox.setInternalState(mockPluginLoader, "server", mockServer); + JavaPluginLoader mockPluginLoader = mock(JavaPluginLoader.class); + new ReflectionMemberAccessor().set(JavaPluginLoader.class.getDeclaredField("server"), mockPluginLoader, mockServer); when(mockServer.getName()).thenReturn("TestBukkit"); Logger.getLogger("Minecraft").setParent(Util.logger); when(mockServer.getLogger()).thenReturn(Util.logger); when(mockServer.getWorldContainer()).thenReturn(worldsDirectory); // Return a fake PDF file. - PluginDescriptionFile pdf = PowerMockito.spy(new PluginDescriptionFile("Multiverse-Core", "2.2-Test", + PluginDescriptionFile pdf = spy(new PluginDescriptionFile("Multiverse-Core", "2.2-Test", "com.onarandombox.MultiverseCore.MultiverseCore")); when(pdf.getAuthors()).thenReturn(new ArrayList()); - core = PowerMockito.spy(new MultiverseCore(mockPluginLoader, pdf, pluginDirectory, new File(pluginDirectory, "testPluginFile"))); + core = spy(new MultiverseCore(mockPluginLoader, pdf, pluginDirectory, new File(pluginDirectory, "testPluginFile"))); // Let's let all MV files go to bin/test doReturn(pluginDirectory).when(core).getDataFolder(); @@ -97,7 +93,7 @@ public class TestInstanceCreator { JavaPlugin[] plugins = new JavaPlugin[] { core }; // Mock the Plugin Manager - PluginManager mockPluginManager = PowerMockito.mock(PluginManager.class); + PluginManager mockPluginManager = mock(PluginManager.class); when(mockPluginManager.getPlugins()).thenReturn(plugins); when(mockPluginManager.getPlugin("Multiverse-Core")).thenReturn(core); when(mockPluginManager.getPermission(anyString())).thenReturn(null); @@ -213,7 +209,7 @@ public class TestInstanceCreator { buscriptfield.setAccessible(true); try { - buscript = PowerMockito.spy(new Buscript(core)); + buscript = spy(new Buscript(core)); when(buscript.getPlugin()).thenReturn(core); } catch (NullPointerException e) { buscript = null; @@ -222,25 +218,25 @@ public class TestInstanceCreator { buscriptfield.set(core, buscript); // Set worldManager - WorldManager wm = PowerMockito.spy(new WorldManager(core)); + WorldManager wm = spy(new WorldManager(core)); Field worldmanagerfield = MultiverseCore.class.getDeclaredField("worldManager"); worldmanagerfield.setAccessible(true); worldmanagerfield.set(core, wm); // Set playerListener - MVPlayerListener pl = PowerMockito.spy(new MVPlayerListener(core)); + MVPlayerListener pl = spy(new MVPlayerListener(core)); Field playerlistenerfield = MultiverseCore.class.getDeclaredField("playerListener"); playerlistenerfield.setAccessible(true); playerlistenerfield.set(core, pl); // Set entityListener - MVEntityListener el = PowerMockito.spy(new MVEntityListener(core)); + MVEntityListener el = spy(new MVEntityListener(core)); Field entitylistenerfield = MultiverseCore.class.getDeclaredField("entityListener"); entitylistenerfield.setAccessible(true); entitylistenerfield.set(core, el); // Set weatherListener - MVWeatherListener wl = PowerMockito.spy(new MVWeatherListener(core)); + MVWeatherListener wl = spy(new MVWeatherListener(core)); Field weatherlistenerfield = MultiverseCore.class.getDeclaredField("weatherListener"); weatherlistenerfield.setAccessible(true); weatherlistenerfield.set(core, wl); diff --git a/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker new file mode 100644 index 00000000..1f0955d4 --- /dev/null +++ b/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker @@ -0,0 +1 @@ +mock-maker-inline