diff --git a/src/main/java/com/gmail/nossr50/party/PartyManager.java b/src/main/java/com/gmail/nossr50/party/PartyManager.java index 130a9b996..aae00c9de 100644 --- a/src/main/java/com/gmail/nossr50/party/PartyManager.java +++ b/src/main/java/com/gmail/nossr50/party/PartyManager.java @@ -55,22 +55,12 @@ public final class PartyManager { * @return true if party is full and cannot be joined */ public boolean isPartyFull(@NotNull Player player, @NotNull Party targetParty) { - requireNonNull(player, "player cannot be null!"); - requireNonNull(targetParty, "targetParty cannot be null!"); return !Permissions.partySizeBypass(player) && pluginRef.getGeneralConfig().getPartyMaxSize() >= 1 && targetParty.getOnlineMembers().size() >= pluginRef.getGeneralConfig().getPartyMaxSize(); } public boolean areAllies(@NotNull Player firstPlayer, @NotNull Player secondPlayer) { - requireNonNull(firstPlayer, "firstPlayer cannot be null!"); - requireNonNull(secondPlayer, "secondPlayer cannot be null!"); - - //Profile not loaded - if (UserManager.getPlayer(firstPlayer) == null) { - return false; - } - - //Profile not loaded - if (UserManager.getPlayer(secondPlayer) == null) { + //Profile is not loaded + if (UserManager.getPlayer(firstPlayer) == null || UserManager.getPlayer(secondPlayer) == null) { return false; } @@ -110,7 +100,6 @@ public final class PartyManager { } public @NotNull List getNearVisibleMembers(@NotNull McMMOPlayer mmoPlayer) { - requireNonNull(mmoPlayer, "mmoPlayer cannot be null!"); List nearMembers = new ArrayList<>(); Party party = mmoPlayer.getParty(); @@ -137,7 +126,6 @@ public final class PartyManager { * @return all the players in the player's party */ public @NotNull LinkedHashMap getAllMembers(@NotNull Player player) { - requireNonNull(player, "player cannot be null!"); Party party = getParty(player); return party == null ? new LinkedHashMap<>() : party.getMembers(); @@ -150,7 +138,6 @@ public final class PartyManager { * @return all online players in this party */ public @NotNull List getOnlineMembers(@NotNull String partyName) { - requireNonNull(partyName, "partyName cannot be null!"); return getOnlineMembers(getParty(partyName)); } @@ -161,7 +148,6 @@ public final class PartyManager { * @return all online players in this party */ public @NotNull List getOnlineMembers(@NotNull Player player) { - requireNonNull(player, "player cannot be null!"); return getOnlineMembers(getParty(player)); } @@ -176,7 +162,6 @@ public final class PartyManager { * @return the existing party, null otherwise */ public @Nullable Party getParty(@NotNull String partyName) { - requireNonNull(partyName, "partyName cannot be null!"); for (Party party : parties) { if (party.getName().equalsIgnoreCase(partyName)) { return party; @@ -194,7 +179,6 @@ public final class PartyManager { */ @Deprecated public @Nullable Party getPlayerParty(@NotNull String playerName) { - requireNonNull(playerName, "playerName cannot be null!"); for (Party party : parties) { if (party.getMembers().containsValue(playerName)) { return party; @@ -211,8 +195,6 @@ public final class PartyManager { * @return the existing party, null otherwise */ public @Nullable Party getPlayerParty(@NotNull String playerName, @NotNull UUID uuid) { - requireNonNull(playerName, "playerName cannot be null!"); - requireNonNull(uuid, "uuid cannot be null!"); for (Party party : parties) { LinkedHashMap members = party.getMembers(); if (members.containsKey(uuid) || members.containsValue(playerName)) { @@ -236,8 +218,7 @@ public final class PartyManager { * @return the existing party, null otherwise */ public @Nullable Party getParty(@NotNull Player player) { - requireNonNull(player, "player cannot be null!"); - //Profile not loaded + //Profile is not loaded if (UserManager.getPlayer(player) == null) { return null; } @@ -265,9 +246,6 @@ public final class PartyManager { * @param party The party */ public void removeFromParty(@NotNull OfflinePlayer player, @NotNull Party party) { - requireNonNull(player, "player cannot be null!"); - requireNonNull(party, "party cannot be null!"); - LinkedHashMap members = party.getMembers(); String playerName = player.getName(); @@ -295,7 +273,6 @@ public final class PartyManager { * @param mcMMOPlayer The player to remove */ public void removeFromParty(@NotNull McMMOPlayer mcMMOPlayer) { - requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); if (mcMMOPlayer.getParty() == null) { return; } @@ -311,7 +288,6 @@ public final class PartyManager { * @deprecated Use {@link #disbandParty(McMMOPlayer, Party)} */ public void disbandParty(@NotNull Party party) { - requireNonNull(party, "party cannot be null!"); disbandParty(null, party); } @@ -322,7 +298,6 @@ public final class PartyManager { * @param party The party to remove */ public void disbandParty(@Nullable McMMOPlayer mcMMOPlayer, @NotNull Party party) { - requireNonNull(party, "party cannot be null!"); //TODO: Potential issues with unloaded profile? for (final Player member : party.getOnlineMembers()) { //Profile not loaded @@ -352,9 +327,6 @@ public final class PartyManager { * @param password The password for this party, null if there was no password */ public void createParty(@NotNull McMMOPlayer mcMMOPlayer, @NotNull String partyName, @Nullable String password) { - requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); - requireNonNull(partyName, "partyName cannot be null!"); - Player player = mcMMOPlayer.getPlayer(); Party party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName.replace(".", ""), password); @@ -407,7 +379,6 @@ public final class PartyManager { * @param mcMMOPlayer The player to add to the party */ public void joinInvitedParty(@NotNull McMMOPlayer mcMMOPlayer) { - requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); Party invite = mcMMOPlayer.getPartyInvite(); // Check if the party still exists, it might have been disbanded @@ -435,7 +406,6 @@ public final class PartyManager { * @param mcMMOPlayer The player who accepts the alliance invite */ public void acceptAllianceInvite(@NotNull McMMOPlayer mcMMOPlayer) { - requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); Party invite = mcMMOPlayer.getPartyAllianceInvite(); Player player = mcMMOPlayer.getPlayer(); @@ -456,9 +426,6 @@ public final class PartyManager { } public void createAlliance(@NotNull Party firstParty, @NotNull Party secondParty) { - requireNonNull(firstParty, "firstParty cannot be null!"); - requireNonNull(secondParty, "secondParty cannot be null!"); - firstParty.setAlly(secondParty); secondParty.setAlly(firstParty); @@ -472,10 +439,6 @@ public final class PartyManager { } public boolean disbandAlliance(@NotNull Player player, @NotNull Party firstParty, @NotNull Party secondParty) { - requireNonNull(player, "player cannot be null!"); - requireNonNull(firstParty, "firstParty cannot be null!"); - requireNonNull(secondParty, "secondParty cannot be null!"); - if (!handlePartyChangeAllianceEvent(player, firstParty.getName(), secondParty.getName(), McMMOPartyAllianceChangeEvent.EventReason.DISBAND_ALLIANCE)) { return false; } @@ -485,8 +448,6 @@ public final class PartyManager { } private void disbandAlliance(@NotNull Party firstParty, @NotNull Party secondParty) { - requireNonNull(firstParty, "firstParty cannot be null!"); - requireNonNull(secondParty, "secondParty cannot be null!"); firstParty.setAlly(null); secondParty.setAlly(null); @@ -506,9 +467,6 @@ public final class PartyManager { * @param party The party */ public void addToParty(@NotNull McMMOPlayer mcMMOPlayer, @NotNull Party party) { - requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); - requireNonNull(party, "party cannot be null!"); - Player player = mcMMOPlayer.getPlayer(); String playerName = player.getName(); @@ -525,7 +483,6 @@ public final class PartyManager { * @return the leader of the party */ public @Nullable String getPartyLeaderName(@NotNull String partyName) { - requireNonNull(partyName, "partyName cannot be null!"); Party party = getParty(partyName); return party == null ? null : party.getLeader().getPlayerName(); @@ -538,8 +495,6 @@ public final class PartyManager { * @param party The party */ public void setPartyLeader(@NotNull UUID uuid, @NotNull Party party) { - requireNonNull(uuid, "uuid cannot be null!"); - requireNonNull(party, "party cannot be null!"); OfflinePlayer player = pluginRef.getServer().getOfflinePlayer(uuid); UUID leaderUniqueId = party.getLeader().getUniqueId(); @@ -564,7 +519,6 @@ public final class PartyManager { * @return true if the player can invite */ public boolean canInvite(@NotNull McMMOPlayer mcMMOPlayer) { - requireNonNull(mcMMOPlayer, "mcMMOPlayer cannot be null!"); Party party = mcMMOPlayer.getParty(); return !party.isLocked() || party.getLeader().getUniqueId().equals(mcMMOPlayer.getPlayer().getUniqueId()); @@ -578,9 +532,6 @@ public final class PartyManager { * @return true if a party with that name exists, false otherwise */ public boolean checkPartyExistence(@NotNull Player player, @NotNull String partyName) { - requireNonNull(player, "player cannot be null!"); - requireNonNull(partyName, "partyName cannot be null!"); - if (getParty(partyName) == null) { return false; } @@ -597,9 +548,6 @@ public final class PartyManager { * @return true if the party was joined successfully, false otherwise */ public boolean changeOrJoinParty(@NotNull McMMOPlayer mmoPlayer, @NotNull String newPartyName) { - requireNonNull(mmoPlayer, "mmoPlayer cannot be null!"); - requireNonNull(newPartyName, "newPartyName cannot be null!"); - final Player player = mmoPlayer.getPlayer(); if (mmoPlayer.inParty()) { @@ -623,9 +571,6 @@ public final class PartyManager { * @return true if they are in the same party, false otherwise */ public boolean inSameParty(@NotNull Player firstPlayer, @NotNull Player secondPlayer) { - requireNonNull(firstPlayer, "firstPlayer cannot be null!"); - requireNonNull(secondPlayer, "secondPlayer cannot be null!"); - //Profile not loaded if (UserManager.getPlayer(firstPlayer) == null) { return false; diff --git a/src/test/java/com/gmail/nossr50/MMOMinimalPluginMock.java b/src/test/java/com/gmail/nossr50/MMOMinimalPluginMock.java deleted file mode 100644 index 1ecfce764..000000000 --- a/src/test/java/com/gmail/nossr50/MMOMinimalPluginMock.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.gmail.nossr50; - -import com.gmail.nossr50.config.AdvancedConfig; -import com.gmail.nossr50.config.ChatConfig; -import com.gmail.nossr50.config.GeneralConfig; -import com.gmail.nossr50.config.RankConfig; -import com.gmail.nossr50.config.experience.ExperienceConfig; -import com.gmail.nossr50.datatypes.skills.PrimarySkillType; -import com.gmail.nossr50.datatypes.skills.SubSkillType; -import com.gmail.nossr50.util.*; -import com.gmail.nossr50.util.blockmeta.ChunkManager; -import com.gmail.nossr50.util.player.UserManager; -import com.gmail.nossr50.util.skills.RankUtils; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Server; -import org.bukkit.World; -import org.bukkit.entity.Player; -import org.bukkit.plugin.PluginManager; -import org.mockito.MockedStatic; -import org.mockito.Mockito; - -import java.util.logging.Logger; - -import static org.mockito.ArgumentMatchers.any; - -public abstract class MMOMinimalPluginMock { - protected MockedStatic mockedMcMMO; - protected MockedStatic mockedChatConfig; - protected MockedStatic experienceConfig; - protected MockedStatic mockedPermissions; - protected MockedStatic mockedRankUtils; - protected MockedStatic mockedUserManager; - protected MockedStatic mockedMisc; - protected MockedStatic mockedEventUtils; - protected TransientEntityTracker transientEntityTracker; - protected AdvancedConfig advancedConfig; - protected GeneralConfig generalConfig; - protected RankConfig rankConfig; - protected Server server; - protected PluginManager pluginManager; - protected World world; - - /* Mocks */ - protected ChunkManager chunkManager; - - protected void mockEnvironment(Logger logger) { - mockedMcMMO = Mockito.mockStatic(mcMMO.class); - mcMMO.p = Mockito.mock(mcMMO.class); - Mockito.when(mcMMO.p.getLogger()).thenReturn(logger); - - // place store - chunkManager = Mockito.mock(ChunkManager.class); - Mockito.when(mcMMO.getPlaceStore()).thenReturn(chunkManager); - - // shut off mod manager for woodcutting - Mockito.when(mcMMO.getModManager()).thenReturn(Mockito.mock(ModManager.class)); - Mockito.when(mcMMO.getModManager().isCustomLog(any())).thenReturn(false); - - // chat config - mockedChatConfig = Mockito.mockStatic(ChatConfig.class); - Mockito.when(ChatConfig.getInstance()).thenReturn(Mockito.mock(ChatConfig.class)); - - // general config - mockGeneralConfig(); - - // rank config - mockRankConfig(); - - // wire advanced config - mockAdvancedConfig(); - - // wire experience config - mockExperienceConfig(); - - this.transientEntityTracker = new TransientEntityTracker(); - Mockito.when(mcMMO.getTransientEntityTracker()).thenReturn(transientEntityTracker); - - mockPermissions(); - - mockedRankUtils = Mockito.mockStatic(RankUtils.class); - - // wire server - this.server = Mockito.mock(Server.class); - Mockito.when(mcMMO.p.getServer()).thenReturn(server); - - // wire plugin manager - this.pluginManager = Mockito.mock(PluginManager.class); - Mockito.when(server.getPluginManager()).thenReturn(pluginManager); - - // wire world - this.world = Mockito.mock(World.class); - - // wire Misc - this.mockedMisc = Mockito.mockStatic(Misc.class); - Mockito.when(Misc.getBlockCenter(any())).thenReturn(new Location(world, 0, 0, 0)); - - // wire user manager - this.mockedUserManager = Mockito.mockStatic(UserManager.class); - } - - private void mockPermissions() { - mockedPermissions = Mockito.mockStatic(Permissions.class); - Mockito.when(Permissions.isSubSkillEnabled(any(Player.class), any(SubSkillType.class))).thenReturn(true); - Mockito.when(Permissions.canUseSubSkill(any(Player.class), any(SubSkillType.class))).thenReturn(true); - Mockito.when(Permissions.isSubSkillEnabled(any(Player.class), any(SubSkillType.class))).thenReturn(true); - Mockito.when(Permissions.canUseSubSkill(any(Player.class), any(SubSkillType.class))).thenReturn(true); - } - - private void mockRankConfig() { - rankConfig = Mockito.mock(RankConfig.class); - } - - private void mockAdvancedConfig() { - this.advancedConfig = Mockito.mock(AdvancedConfig.class); - Mockito.when(mcMMO.p.getAdvancedConfig()).thenReturn(advancedConfig); - } - - private void mockGeneralConfig() { - generalConfig = Mockito.mock(GeneralConfig.class); - Mockito.when(generalConfig.getTreeFellerThreshold()).thenReturn(100); - Mockito.when(generalConfig.getDoubleDropsEnabled(PrimarySkillType.WOODCUTTING, Material.OAK_LOG)).thenReturn(true); - Mockito.when(generalConfig.getLocale()).thenReturn("en_US"); - Mockito.when(mcMMO.p.getGeneralConfig()).thenReturn(generalConfig); - } - - private void mockExperienceConfig() { - experienceConfig = Mockito.mockStatic(ExperienceConfig.class); - - Mockito.when(ExperienceConfig.getInstance()).thenReturn(Mockito.mock(ExperienceConfig.class)); - - // Combat - Mockito.when(ExperienceConfig.getInstance().getCombatXP("Cow")).thenReturn(1D); - } - - protected void cleanupBaseEnvironment() { - // Clean up resources here if needed. - if (mockedMcMMO != null) { - mockedMcMMO.close(); - } - if (experienceConfig != null) { - experienceConfig.close(); - } - if (mockedChatConfig != null) { - mockedChatConfig.close(); - } - if (mockedPermissions != null) { - mockedPermissions.close(); - } - if (mockedRankUtils != null) { - mockedRankUtils.close(); - } - if (mockedUserManager != null) { - mockedUserManager.close(); - } - if (mockedMisc != null) { - mockedMisc.close(); - } - if (mockedEventUtils != null) { - mockedEventUtils.close(); - } - } -} diff --git a/src/test/java/com/gmail/nossr50/MMOTestEnvironment.java b/src/test/java/com/gmail/nossr50/MMOTestEnvironment.java index 973cf0f28..d995ed569 100644 --- a/src/test/java/com/gmail/nossr50/MMOTestEnvironment.java +++ b/src/test/java/com/gmail/nossr50/MMOTestEnvironment.java @@ -6,6 +6,7 @@ import com.gmail.nossr50.config.ChatConfig; import com.gmail.nossr50.config.GeneralConfig; import com.gmail.nossr50.config.RankConfig; import com.gmail.nossr50.config.experience.ExperienceConfig; +import com.gmail.nossr50.config.party.PartyConfig; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.PlayerProfile; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; @@ -44,6 +45,7 @@ public abstract class MMOTestEnvironment { protected MockedStatic mockedEventUtils; protected TransientEntityTracker transientEntityTracker; protected AdvancedConfig advancedConfig; + protected PartyConfig partyConfig; protected GeneralConfig generalConfig; protected RankConfig rankConfig; protected SkillTools skillTools; @@ -85,6 +87,9 @@ public abstract class MMOTestEnvironment { // general config mockGeneralConfig(); + // party config + mockPartyConfig(); + // rank config mockRankConfig(); @@ -166,6 +171,12 @@ public abstract class MMOTestEnvironment { when(mcMMO.p.getGeneralConfig()).thenReturn(generalConfig); } + private void mockPartyConfig() { + partyConfig = Mockito.mock(PartyConfig.class); + when(partyConfig.isPartyEnabled()).thenReturn(false); + when(mcMMO.p.getPartyConfig()).thenReturn(partyConfig); + } + private void mockExperienceConfig() { experienceConfig = Mockito.mockStatic(ExperienceConfig.class); diff --git a/src/test/java/com/gmail/nossr50/party/PartyManagerTest.java b/src/test/java/com/gmail/nossr50/party/PartyManagerTest.java index bd4e2d629..25d74515b 100644 --- a/src/test/java/com/gmail/nossr50/party/PartyManagerTest.java +++ b/src/test/java/com/gmail/nossr50/party/PartyManagerTest.java @@ -1,45 +1,46 @@ package com.gmail.nossr50.party; +import com.gmail.nossr50.MMOTestEnvironment; import com.gmail.nossr50.datatypes.player.McMMOPlayer; -import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.mcMMO; -import org.bukkit.Server; import org.bukkit.entity.Player; -import org.bukkit.plugin.PluginManager; -import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.mockito.Mockito; import java.util.UUID; +import java.util.logging.Logger; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; -class PartyManagerTest { +class PartyManagerTest extends MMOTestEnvironment { + private static final Logger logger = Logger.getLogger(PartyManagerTest.class.getName()); - static mcMMO mockMcMMO; + @BeforeEach + public void setUp() { + mockBaseEnvironment(logger); - @BeforeAll - public static void setup() { - // create a static stub for LocaleLoader.class - mockStatic(LocaleLoader.class); - when(LocaleLoader.getString(anyString())).thenReturn(""); + // currently unnecessary, but may be needed for future tests + Mockito.when(partyConfig.isPartyEnabled()).thenReturn(true); + } - mockMcMMO = mock(mcMMO.class); - final Server mockServer = mock(Server.class); - when(mockMcMMO.getServer()).thenReturn(mockServer); - when(mockServer.getPluginManager()).thenReturn(mock(PluginManager.class)); + @AfterEach + public void tearDown() { + cleanupBaseEnvironment(); - // TODO: Add cleanup for static mock + // disable parties in config for other tests + Mockito.when(partyConfig.isPartyEnabled()).thenReturn(false); } @Test public void createPartyWithoutPasswordShouldSucceed() { // Given - PartyManager partyManager = new PartyManager(mockMcMMO); + PartyManager partyManager = new PartyManager(mcMMO.p); String partyName = "TestParty"; - // TODO: Update this with utils from the other dev branches in the future Player player = mock(Player.class); McMMOPlayer mmoPlayer = mock(McMMOPlayer.class); when(mmoPlayer.getPlayer()).thenReturn(player); @@ -52,11 +53,10 @@ class PartyManagerTest { @Test public void createPartyWithPasswordShouldSucceed() { // Given - PartyManager partyManager = new PartyManager(mockMcMMO); + PartyManager partyManager = new PartyManager(mcMMO.p); String partyName = "TestParty"; String partyPassword = "somePassword"; - // TODO: Update this with utils from the other dev branches in the future Player player = mock(Player.class); McMMOPlayer mmoPlayer = mock(McMMOPlayer.class); when(mmoPlayer.getPlayer()).thenReturn(player); @@ -69,29 +69,28 @@ class PartyManagerTest { @Test public void createPartyWithoutNameShouldFail() { // Given - PartyManager partyManager = new PartyManager(mockMcMMO); + PartyManager partyManager = new PartyManager(mcMMO.p); String partyPassword = "somePassword"; - // TODO: Update this with utils from the other dev branches in the future Player player = mock(Player.class); McMMOPlayer mmoPlayer = mock(McMMOPlayer.class); when(mmoPlayer.getPlayer()).thenReturn(player); when(player.getUniqueId()).thenReturn(new UUID(0, 0)); // When & Then - assertThrows(NullPointerException.class, + assertThrows(IllegalArgumentException.class, () -> partyManager.createParty(mmoPlayer, null, partyPassword)); } @Test public void createPartyWithoutPlayerShouldFail() { // Given - PartyManager partyManager = new PartyManager(mockMcMMO); + PartyManager partyManager = new PartyManager(mcMMO.p); String partyName = "TestParty"; String partyPassword = "somePassword"; // When & Then - assertThrows(NullPointerException.class, + assertThrows(IllegalArgumentException.class, () -> partyManager.createParty(null, partyName, partyPassword)); } diff --git a/src/test/java/com/gmail/nossr50/util/random/ProbabilityUtilTest.java b/src/test/java/com/gmail/nossr50/util/random/ProbabilityUtilTest.java index 36419f9e4..35f134da5 100644 --- a/src/test/java/com/gmail/nossr50/util/random/ProbabilityUtilTest.java +++ b/src/test/java/com/gmail/nossr50/util/random/ProbabilityUtilTest.java @@ -16,7 +16,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; class ProbabilityUtilTest { - mcMMO mmoInstance; AdvancedConfig advancedConfig; diff --git a/src/test/java/com/gmail/nossr50/util/random/RandomChanceTest.java b/src/test/java/com/gmail/nossr50/util/random/RandomChanceTest.java deleted file mode 100644 index 982acdc6b..000000000 --- a/src/test/java/com/gmail/nossr50/util/random/RandomChanceTest.java +++ /dev/null @@ -1,100 +0,0 @@ -//package com.gmail.nossr50.util.random; -// -//import com.gmail.nossr50.datatypes.player.McMMOPlayer; -//import com.gmail.nossr50.datatypes.skills.PrimarySkillType; -//import com.gmail.nossr50.datatypes.skills.SubSkillType; -//import com.gmail.nossr50.util.Permissions; -//import com.gmail.nossr50.util.player.UserManager; -//import org.bukkit.entity.Player; -//import org.jetbrains.annotations.NotNull; -//import org.junit.Assert; -//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 static org.mockito.Mockito.mock; -// -////TODO: Rewrite the entire com.gmail.nossr50.util.random package, it was written in haste and it disgusts me -////TODO: Add more tests for the other types of random dice rolls -//@RunWith(PowerMockRunner.class) -//@PrepareForTest({RandomChanceUtil.class, UserManager.class, PrimarySkillType.class}) -//public class RandomChanceTest { -// -// private Player luckyPlayer; -// private McMMOPlayer mmoPlayerLucky; -// -// private Player normalPlayer; -// private McMMOPlayer mmoPlayerNormal; -// -// private SubSkillType subSkillType; -// private PrimarySkillType primarySkillType; -// -// private final String testASCIIHeader = "---- mcMMO Tests ----"; -// -// @Before -// public void setUpMock() { -// primarySkillType = PrimarySkillType.MINING; -// subSkillType = SubSkillType.MINING_MOTHER_LODE; -// -// //TODO: Likely needs to be changed per skill if more tests were added -// PowerMockito.stub(PowerMockito.method(RandomChanceUtil.class, "getMaximumProbability", subSkillType.getClass())).toReturn(10.0D); -// PowerMockito.stub(PowerMockito.method(RandomChanceUtil.class, "getMaxBonusLevelCap", subSkillType.getClass())).toReturn(10000D); -// -// normalPlayer = mock(Player.class); -// luckyPlayer = mock(Player.class); -// -// mmoPlayerNormal = mock(McMMOPlayer.class); -// mmoPlayerLucky = mock(McMMOPlayer.class); -// -// PowerMockito.mockStatic(UserManager.class); -// Mockito.when(UserManager.getPlayer(normalPlayer)).thenReturn(mmoPlayerNormal); -// Mockito.when(UserManager.getPlayer(luckyPlayer)).thenReturn(mmoPlayerLucky); -// -// Mockito.when(mmoPlayerNormal.getPlayer()).thenReturn(normalPlayer); -// Mockito.when(mmoPlayerLucky.getPlayer()).thenReturn(luckyPlayer); -// -// //Lucky player has the lucky permission -// //Normal player doesn't have any lucky permission -// Mockito.when(Permissions.lucky(luckyPlayer, primarySkillType)).thenReturn(true); -// Mockito.when(Permissions.lucky(normalPlayer, primarySkillType)).thenReturn(false); -// -// Mockito.when(mmoPlayerNormal.getSkillLevel(primarySkillType)).thenReturn(2150); -// Mockito.when(mmoPlayerLucky.getSkillLevel(primarySkillType)).thenReturn(2150); -// } -// -// @Test -// public void testLuckyChance() { -// System.out.println(testASCIIHeader); -// System.out.println("Testing success odds to fall within expected values..."); -// assertEquals(2.15D, getSuccessChance(mmoPlayerNormal),0.00D); -// assertEquals(2.15D * RandomChanceUtil.LUCKY_MODIFIER, getSuccessChance(mmoPlayerLucky),0.00D); -// } -// -//// @Test -//// public void testNeverFailsSuccessLuckyPlayer() { -//// System.out.println(testASCIIHeader); -//// System.out.println("Test - Lucky Player with 80% base success should never fail (10,000 iterations)"); -//// for(int x = 0; x < 10000; x++) { -//// Assert.assertTrue(RandomChanceUtil.checkRandomChanceExecutionSuccess(luckyPlayer, SubSkillType.HERBALISM_GREEN_THUMB, true)); -//// if(x == 10000-1) -//// System.out.println("They never failed!"); -//// } -//// } -// -// -// -// -// -// private double getSuccessChance(@NotNull McMMOPlayer mmoPlayer) { -// RandomChanceSkill randomChanceSkill = new RandomChanceSkill(mmoPlayer.getPlayer(), subSkillType, true); -// return RandomChanceUtil.calculateChanceOfSuccess(randomChanceSkill); -// } -// -// private void assertEquals(double expected, double actual, double delta) { -// Assert.assertEquals(expected, actual, delta); -// } -//} diff --git a/src/test/java/com/gmail/nossr50/util/text/TextUtilsTest.java b/src/test/java/com/gmail/nossr50/util/text/TextUtilsTest.java index cefbe7010..c58157179 100644 --- a/src/test/java/com/gmail/nossr50/util/text/TextUtilsTest.java +++ b/src/test/java/com/gmail/nossr50/util/text/TextUtilsTest.java @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test; /** * This Unit Test checks if Adventure was set up correctly and works as expected. - * Normally we can rely on this to be the case. However sometimes our dependencies + * Normally, we can rely on this to be the case. However sometimes our dependencies * lack so far behind that things stop working correctly. * This test ensures that basic functionality is guaranteed to work as we would expect. *