From ffc5b77f36b48e615eaa1f2bacfad05fd91aa88c Mon Sep 17 00:00:00 2001 From: ljacqu Date: Fri, 9 Sep 2016 21:56:32 +0200 Subject: [PATCH] Revert: [RevertMe] Remove essentials hook (currently unavailable using maven) --- pom.xml | 6 +- .../fr/xephi/authme/hooks/PluginHooks.java | 31 ++-- .../xephi/authme/hooks/PluginHooksTest.java | 170 +++++++++--------- 3 files changed, 102 insertions(+), 105 deletions(-) diff --git a/pom.xml b/pom.xml index 344dbbc6f..a399f16a8 100644 --- a/pom.xml +++ b/pom.xml @@ -393,12 +393,11 @@ https://hub.spigotmc.org/nexus/content/repositories/snapshots - ess-repo http://repo.ess3.net/content/groups/essentials - --> @@ -718,7 +717,7 @@ - net.ess3 Essentials @@ -735,7 +734,6 @@ - --> diff --git a/src/main/java/fr/xephi/authme/hooks/PluginHooks.java b/src/main/java/fr/xephi/authme/hooks/PluginHooks.java index 93e437d31..f3a066e19 100644 --- a/src/main/java/fr/xephi/authme/hooks/PluginHooks.java +++ b/src/main/java/fr/xephi/authme/hooks/PluginHooks.java @@ -1,7 +1,7 @@ package fr.xephi.authme.hooks; import ch.jalu.injector.annotations.NoFieldScan; -//import com.earth2me.essentials.Essentials; +import com.earth2me.essentials.Essentials; import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.api.MVWorldManager; import fr.xephi.authme.ConsoleLogger; @@ -22,7 +22,7 @@ import java.io.File; public class PluginHooks { private final PluginManager pluginManager; - //private Essentials essentials; + private Essentials essentials; private MultiverseCore multiverse; private CombatTagPlus combatTagPlus; @@ -46,9 +46,9 @@ public class PluginHooks { * @param socialSpyStatus The social spy status (enabled/disabled) to set */ public void setEssentialsSocialSpyStatus(Player player, boolean socialSpyStatus) { - //if (essentials != null) { - // essentials.getUser(player).setSocialSpyEnabled(socialSpyStatus); - //} + if (essentials != null) { + essentials.getUser(player).setSocialSpyEnabled(socialSpyStatus); + } } /** @@ -57,9 +57,9 @@ public class PluginHooks { * @return The Essentials data folder, or null if unavailable */ public File getEssentialsDataFolder() { - //if (essentials != null) { - // return essentials.getDataFolder(); - //} + if (essentials != null) { + return essentials.getDataFolder(); + } return null; } @@ -104,8 +104,7 @@ public class PluginHooks { // "Is plugin available" methods // ------ public boolean isEssentialsAvailable() { - //return essentials != null; - return false; + return essentials != null; } public boolean isMultiverseAvailable() { @@ -120,11 +119,11 @@ public class PluginHooks { // Hook methods // ------ public void tryHookToEssentials() { - //try { - // essentials = getPlugin(pluginManager, "Essentials", Essentials.class); - //} catch (Exception | NoClassDefFoundError ignored) { - // essentials = null; - //} + try { + essentials = getPlugin(pluginManager, "Essentials", Essentials.class); + } catch (Exception | NoClassDefFoundError ignored) { + essentials = null; + } } public void tryHookToCombatPlus() { @@ -147,7 +146,7 @@ public class PluginHooks { // Unhook methods // ------ public void unhookEssentials() { - //essentials = null; + essentials = null; } public void unhookCombatPlus() { combatTagPlus = null; diff --git a/src/test/java/fr/xephi/authme/hooks/PluginHooksTest.java b/src/test/java/fr/xephi/authme/hooks/PluginHooksTest.java index 9e94306ec..eef561443 100644 --- a/src/test/java/fr/xephi/authme/hooks/PluginHooksTest.java +++ b/src/test/java/fr/xephi/authme/hooks/PluginHooksTest.java @@ -1,18 +1,18 @@ package fr.xephi.authme.hooks; -//import com.earth2me.essentials.Essentials; -//import com.earth2me.essentials.User; +import com.earth2me.essentials.Essentials; +import com.earth2me.essentials.User; import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MultiverseWorld; -//import fr.xephi.authme.ReflectionTestUtils; +import fr.xephi.authme.ReflectionTestUtils; import fr.xephi.authme.TestHelper; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; -//import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.plugin.java.JavaPlugin; import org.junit.BeforeClass; import org.junit.Test; @@ -34,7 +34,7 @@ import static org.mockito.Mockito.verify; public class PluginHooksTest { /** The plugin name of Essentials. */ - //private static final String ESSENTIALS = "Essentials"; + private static final String ESSENTIALS = "Essentials"; /** The plugin name of Multiverse-Core. */ private static final String MULTIVERSE = "Multiverse-Core"; @@ -43,35 +43,35 @@ public class PluginHooksTest { TestHelper.setupLogger(); } -// @Test -// public void shouldHookIntoEssentials() { -// // given -// PluginManager pluginManager = mock(PluginManager.class); -// PluginHooks pluginHooks = new PluginHooks(pluginManager); -// setPluginAvailable(pluginManager, ESSENTIALS, Essentials.class); -// assertThat(pluginHooks.isEssentialsAvailable(), equalTo(false)); -// -// // when -// pluginHooks.tryHookToEssentials(); -// -// // then -// assertThat(pluginHooks.isEssentialsAvailable(), equalTo(true)); -// } + @Test + public void shouldHookIntoEssentials() { + // given + PluginManager pluginManager = mock(PluginManager.class); + PluginHooks pluginHooks = new PluginHooks(pluginManager); + setPluginAvailable(pluginManager, ESSENTIALS, Essentials.class); + assertThat(pluginHooks.isEssentialsAvailable(), equalTo(false)); + + // when + pluginHooks.tryHookToEssentials(); + + // then + assertThat(pluginHooks.isEssentialsAvailable(), equalTo(true)); + } // Note ljacqu 20160312: Cannot test with Multiverse or CombatTagPlus because their classes are declared final -// @Test -// public void shouldHookIntoEssentialsAtInitialization() { -// // given -// PluginManager pluginManager = mock(PluginManager.class); -// setPluginAvailable(pluginManager, ESSENTIALS, Essentials.class); -// -// // when -// PluginHooks pluginHooks = new PluginHooks(pluginManager); -// -// // then -// assertThat(pluginHooks.isEssentialsAvailable(), equalTo(true)); -// } + @Test + public void shouldHookIntoEssentialsAtInitialization() { + // given + PluginManager pluginManager = mock(PluginManager.class); + setPluginAvailable(pluginManager, ESSENTIALS, Essentials.class); + + // when + PluginHooks pluginHooks = new PluginHooks(pluginManager); + + // then + assertThat(pluginHooks.isEssentialsAvailable(), equalTo(true)); + } @Test public void shouldHookIntoMultiverseAtInitialization() { @@ -86,24 +86,24 @@ public class PluginHooksTest { assertThat(pluginHooks.isMultiverseAvailable(), equalTo(true)); } -// @Test -// public void shouldReturnEssentialsDataFolder() { -// // given -// Essentials ess = mock(Essentials.class); -// File essDataFolder = new File("test/data-folder"); -// // Need to set the data folder with reflections because getDataFolder() is declared final -// ReflectionTestUtils.setField(JavaPlugin.class, ess, "dataFolder", essDataFolder); -// -// PluginManager pluginManager = mock(PluginManager.class); -// setPluginAvailable(pluginManager, ESSENTIALS, ess); -// PluginHooks pluginHooks = new PluginHooks(pluginManager); -// -// // when -// File dataFolder = pluginHooks.getEssentialsDataFolder(); -// -// // then -// assertThat(dataFolder, equalTo(essDataFolder)); -// } + @Test + public void shouldReturnEssentialsDataFolder() { + // given + Essentials ess = mock(Essentials.class); + File essDataFolder = new File("test/data-folder"); + // Need to set the data folder with reflections because getDataFolder() is declared final + ReflectionTestUtils.setField(JavaPlugin.class, ess, "dataFolder", essDataFolder); + + PluginManager pluginManager = mock(PluginManager.class); + setPluginAvailable(pluginManager, ESSENTIALS, ess); + PluginHooks pluginHooks = new PluginHooks(pluginManager); + + // when + File dataFolder = pluginHooks.getEssentialsDataFolder(); + + // then + assertThat(dataFolder, equalTo(essDataFolder)); + } @Test public void shouldReturnNullForUnhookedEssentials() { @@ -118,26 +118,26 @@ public class PluginHooksTest { assertThat(result, nullValue()); } -// @Test -// public void shouldSetSocialSpyStatus() { -// // given -// Player player = mock(Player.class); -// -// Essentials ess = mock(Essentials.class); -// User user = mock(User.class); -// given(ess.getUser(player)).willReturn(user); -// -// PluginManager pluginManager = mock(PluginManager.class); -// setPluginAvailable(pluginManager, ESSENTIALS, ess); -// PluginHooks pluginHooks = new PluginHooks(pluginManager); -// -// // when -// pluginHooks.setEssentialsSocialSpyStatus(player, true); -// -// // then -// verify(ess).getUser(player); -// verify(user).setSocialSpyEnabled(true); -// } + @Test + public void shouldSetSocialSpyStatus() { + // given + Player player = mock(Player.class); + + Essentials ess = mock(Essentials.class); + User user = mock(User.class); + given(ess.getUser(player)).willReturn(user); + + PluginManager pluginManager = mock(PluginManager.class); + setPluginAvailable(pluginManager, ESSENTIALS, ess); + PluginHooks pluginHooks = new PluginHooks(pluginManager); + + // when + pluginHooks.setEssentialsSocialSpyStatus(player, true); + + // then + verify(ess).getUser(player); + verify(user).setSocialSpyEnabled(true); + } @Test public void shouldNotDoAnythingForUnhookedEssentials() { @@ -148,22 +148,22 @@ public class PluginHooksTest { pluginHooks.setEssentialsSocialSpyStatus(mock(Player.class), false); } -// @Test -// public void shouldUnhookEssentialsAndMultiverse() { -// // given -// PluginManager pluginManager = mock(PluginManager.class); -// setPluginAvailable(pluginManager, ESSENTIALS, Essentials.class); -// setPluginAvailable(pluginManager, MULTIVERSE, MultiverseCore.class); -// PluginHooks pluginHooks = new PluginHooks(pluginManager); -// -// // when -// pluginHooks.unhookEssentials(); -// pluginHooks.unhookMultiverse(); -// -// // then -// assertThat(pluginHooks.isEssentialsAvailable(), equalTo(false)); -// assertThat(pluginHooks.isMultiverseAvailable(), equalTo(false)); -// } + @Test + public void shouldUnhookEssentialsAndMultiverse() { + // given + PluginManager pluginManager = mock(PluginManager.class); + setPluginAvailable(pluginManager, ESSENTIALS, Essentials.class); + setPluginAvailable(pluginManager, MULTIVERSE, MultiverseCore.class); + PluginHooks pluginHooks = new PluginHooks(pluginManager); + + // when + pluginHooks.unhookEssentials(); + pluginHooks.unhookMultiverse(); + + // then + assertThat(pluginHooks.isEssentialsAvailable(), equalTo(false)); + assertThat(pluginHooks.isMultiverseAvailable(), equalTo(false)); + } @Test public void shouldHandlePluginRetrievalError() {