From 60ec40830cfefeab9211966f2b03ebb5b1002247 Mon Sep 17 00:00:00 2001 From: tastybento Date: Thu, 9 Aug 2018 06:34:35 +0900 Subject: [PATCH] Updated to FC-0.9 Moved folders to match Maven layout. Added LevelPresenterTest class. --- pom.xml | 247 ++++++++++++++---- src/main/java/bentobox/addon/level/Level.java | 6 - addon.yml => src/resources/addon.yml | 0 config.yml => src/resources/config.yml | 0 {locales => src/resources/locales}/en-US.yml | 0 .../addon/level/LevelPresenterTest.java | 89 +++++++ 6 files changed, 290 insertions(+), 52 deletions(-) rename addon.yml => src/resources/addon.yml (100%) rename config.yml => src/resources/config.yml (100%) rename {locales => src/resources/locales}/en-US.yml (100%) create mode 100644 src/test/java/bentobox/addon/level/LevelPresenterTest.java diff --git a/pom.xml b/pom.xml index 1334c53..f87b5b0 100644 --- a/pom.xml +++ b/pom.xml @@ -1,55 +1,72 @@ + 4.0.0 + + bskyblock.addon Level 0.0.1-SNAPSHOT - jar + + + BentoBox Level + Level is an add-on for BentoBox that calculates a level score for islands in BSkyBlock or AcidIsland worlds. + https://github.com/BentoBoxWorld/addon-level + 2018 + + + scm:git:https://github.com/BentoBoxWorld/addon-level.git + scm:git:git@github.com:BentoBoxWorld/addon-level.git + https://github.com/BentoBoxWorld/addon-level + + + + GitHub + https://github.com/BentoBoxWorld/addon-Level/issues + + UTF-8 + UTF-8 + 1.8 + 1.7.4 - - clean package install - - - . - true - ${basedir} - - *.yml - - - - locales - false - ${basedir}/locales - - *.yml - - - - - - maven-compiler-plugin - 3.5.1 - - 1.8 - 1.8 - - - - + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots + + + - - org.spigotmc - spigot-api - 1.13-R0.1-SNAPSHOT - provided - + + org.spigotmc + spigot-api + 1.13-R0.1-SNAPSHOT + provided + + + org.mockito + mockito-all + 1.10.19 + test + + + org.powermock + powermock-module-junit4 + ${powermock.version} + test + + + org.powermock + powermock-api-mockito + ${powermock.version} + test + world.bentobox bentobox - FC-0.81 + FC-0.9 provided @@ -59,11 +76,149 @@ provided - - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - bskyblock.addon + + + clean package + + + src/main/resources + true + + + src/main/resources/locales + ./locales + false + + + + + org.apache.maven.plugins + maven-clean-plugin + 3.1.0 + + + org.apache.maven.plugins + maven-resources-plugin + 3.1.0 + + + org.apache.maven.plugins + maven-compiler-plugin + 3.7.0 + + ${java.version} + ${java.version} + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.0 + + + org.apache.maven.plugins + maven-jar-plugin + 3.1.0 + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.0.1 + + private + false + -Xdoclint:none + + + + attach-javadocs + + jar + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.0.1 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.1.1 + + false + + + + org.apache.maven.plugins + maven-install-plugin + 2.5.2 + + + org.apache.maven.plugins + maven-deploy-plugin + 2.8.2 + + + org.jacoco + jacoco-maven-plugin + 0.8.1 + + true + + + + pre-unit-test + + prepare-agent + + + + post-unit-test + + report + + + + + + + + + + sonar + + https://sonarcloud.io + tastybento-github + **/Metrics.java + + + + + org.sonarsource.scanner.maven + sonar-maven-plugin + 5.1 + + + verify + + sonar + + + + + + + + \ No newline at end of file diff --git a/src/main/java/bentobox/addon/level/Level.java b/src/main/java/bentobox/addon/level/Level.java index b878da3..e64d23c 100644 --- a/src/main/java/bentobox/addon/level/Level.java +++ b/src/main/java/bentobox/addon/level/Level.java @@ -101,12 +101,6 @@ public class Level extends Addon { @Override public void onEnable() { - // Check if it is enabled - it might be loaded, but not enabled. - if (getPlugin() == null || !getPlugin().isEnabled()) { - getLogger().severe("BentoBox does not exist or is not enabled. Stopping."); - this.setEnabled(false); - return; - } // Load the plugin's config settings = new Settings(this); // Get the BSkyBlock database diff --git a/addon.yml b/src/resources/addon.yml similarity index 100% rename from addon.yml rename to src/resources/addon.yml diff --git a/config.yml b/src/resources/config.yml similarity index 100% rename from config.yml rename to src/resources/config.yml diff --git a/locales/en-US.yml b/src/resources/locales/en-US.yml similarity index 100% rename from locales/en-US.yml rename to src/resources/locales/en-US.yml diff --git a/src/test/java/bentobox/addon/level/LevelPresenterTest.java b/src/test/java/bentobox/addon/level/LevelPresenterTest.java new file mode 100644 index 0000000..523de08 --- /dev/null +++ b/src/test/java/bentobox/addon/level/LevelPresenterTest.java @@ -0,0 +1,89 @@ +/** + * + */ +package bentobox.addon.level; + +import static org.junit.Assert.assertNotNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.UUID; + +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import bentobox.addon.level.calculators.PlayerLevel; +import world.bentobox.bentobox.BentoBox; +import world.bentobox.bentobox.api.user.User; +import world.bentobox.bentobox.managers.IslandWorldManager; +import world.bentobox.bentobox.managers.IslandsManager; + +/** + * @author tastybento + * + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({Bukkit.class, LevelPresenter.class}) +public class LevelPresenterTest { + + private BentoBox plugin; + private Level addon; + private IslandsManager im; + private PlayerLevel pl; + + /** + * @throws java.lang.Exception + */ + @Before + public void setUp() throws Exception { + plugin = mock(BentoBox.class); + addon = mock(Level.class); + IslandWorldManager iwm = mock(IslandWorldManager.class); + when(plugin.getIWM()).thenReturn(iwm); + when(iwm.getPermissionPrefix(Mockito.any())).thenReturn("world"); + im = mock(IslandsManager.class); + when(plugin.getIslands()).thenReturn(im); + // Has island + when(im.hasIsland(Mockito.any(), Mockito.any(User.class))).thenReturn(true); + // In team + when(im.inTeam(Mockito.any(), Mockito.any())).thenReturn(true); + // team leader + when(im.getTeamLeader(Mockito.any(), Mockito.any())).thenReturn(UUID.randomUUID()); + + pl = mock(PlayerLevel.class); + PowerMockito.whenNew(PlayerLevel.class).withAnyArguments().thenReturn(pl); + + } + + /** + * Test method for {@link bentobox.addon.level.LevelPresenter#LevelPresenter(bentobox.addon.level.Level, world.bentobox.bentobox.BentoBox)}. + */ + @Test + public void testLevelPresenter() { + assertNotNull(new LevelPresenter(addon, plugin)); + } + + /** + * Test method for {@link bentobox.addon.level.LevelPresenter#calculateIslandLevel(org.bukkit.World, world.bentobox.bentobox.api.user.User, java.util.UUID)}. + */ + @Test + public void testCalculateIslandLevel() { + LevelPresenter lp = new LevelPresenter(addon, plugin); + World world = mock(World.class); + User sender = mock(User.class); + UUID targetPlayer = UUID.randomUUID(); + lp.calculateIslandLevel(world, sender, targetPlayer); + + Mockito.verify(sender).sendMessage("island.level.calculating"); + // Verify PlayerLevel was called + Mockito.verify(pl); + } + +}