Put ranks in the database. Prework for #1798

This commit is contained in:
tastybento 2023-11-05 10:34:23 -08:00
parent 6d09a5a359
commit 44be66bdfc
23 changed files with 517 additions and 516 deletions

View File

@ -0,0 +1,45 @@
package world.bentobox.bentobox.database.objects;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import com.google.gson.annotations.Expose;
/**
* Stores data on ranks
*/
@Table(name = "Ranks")
public class RankObject implements DataObject {
public static final String ID = "BentoBox-Ranks";
public RankObject(Map<String, Integer> rankReference) {
super();
this.rankReference = rankReference;
}
@Expose
private Map<String, Integer> rankReference;
@Override
public String getUniqueId() {
return ID;
}
@Override
public void setUniqueId(String uniqueId) {
// Nothing to do
}
public Map<String, Integer> getRankReference() {
return Objects.requireNonNullElse(rankReference, new LinkedHashMap<>());
}
public void setRankReference(Map<String, Integer> rankReference) {
this.rankReference = rankReference;
}
}

View File

@ -5,6 +5,12 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.stream.Collectors;
import org.eclipse.jdt.annotation.NonNull;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.database.Database;
import world.bentobox.bentobox.database.objects.RankObject;
/**
* Ranks Manager
* Handles ranks and holds constants for various island ranks
@ -13,149 +19,159 @@ import java.util.stream.Collectors;
*/
public class RanksManager {
// Constants that define the hard coded rank values
public static final String ADMIN_RANK_REF = "ranks.admin";
public static final String MOD_RANK_REF = "ranks.mod";
public static final String OWNER_RANK_REF = "ranks.owner";
public static final String SUB_OWNER_RANK_REF = "ranks.sub-owner";
public static final String MEMBER_RANK_REF = "ranks.member";
public static final String TRUSTED_RANK_REF = "ranks.trusted";
public static final String COOP_RANK_REF = "ranks.coop";
public static final String VISITOR_RANK_REF = "ranks.visitor";
public static final String BANNED_RANK_REF = "ranks.banned";
public static final int ADMIN_RANK = 10000;
public static final int MOD_RANK = 5000;
public static final int OWNER_RANK = 1000;
public static final int SUB_OWNER_RANK = 900;
public static final int MEMBER_RANK = 500;
public static final int TRUSTED_RANK = 400;
public static final int COOP_RANK = 200;
public static final int VISITOR_RANK = 0;
public static final int BANNED_RANK = -1;
// Constants that define the hard coded rank values
public static final String ADMIN_RANK_REF = "ranks.admin";
public static final String MOD_RANK_REF = "ranks.mod";
public static final String OWNER_RANK_REF = "ranks.owner";
public static final String SUB_OWNER_RANK_REF = "ranks.sub-owner";
public static final String MEMBER_RANK_REF = "ranks.member";
public static final String TRUSTED_RANK_REF = "ranks.trusted";
public static final String COOP_RANK_REF = "ranks.coop";
public static final String VISITOR_RANK_REF = "ranks.visitor";
public static final String BANNED_RANK_REF = "ranks.banned";
public static final int ADMIN_RANK = 10000;
public static final int MOD_RANK = 5000;
public static final int OWNER_RANK = 1000;
public static final int SUB_OWNER_RANK = 900;
public static final int MEMBER_RANK = 500;
public static final int TRUSTED_RANK = 400;
public static final int COOP_RANK = 200;
public static final int VISITOR_RANK = 0;
public static final int BANNED_RANK = -1;
// The store of ranks
private LinkedHashMap<String, Integer> ranks = new LinkedHashMap<>();
// The store of ranks
private LinkedHashMap<String, Integer> ranks = new LinkedHashMap<>();
public RanksManager() {
// Hard coded ranks
ranksPut(ADMIN_RANK_REF, ADMIN_RANK);
ranksPut(MOD_RANK_REF, MOD_RANK);
ranksPut(OWNER_RANK_REF, OWNER_RANK);
ranksPut(SUB_OWNER_RANK_REF, SUB_OWNER_RANK);
ranksPut(MEMBER_RANK_REF, MEMBER_RANK);
ranksPut(TRUSTED_RANK_REF, TRUSTED_RANK);
ranksPut(COOP_RANK_REF, COOP_RANK);
ranksPut(VISITOR_RANK_REF, VISITOR_RANK);
ranksPut(BANNED_RANK_REF, BANNED_RANK);
}
@NonNull
private Database<RankObject> handler;
/**
* Try to add a new rank. Owner, member, visitor and banned ranks cannot be changed.
* @param reference - a reference that can be found in a locale file
* @param value - the rank value
* @return true if the rank was successfully added
*/
public boolean addRank(String reference, int value) {
if (reference.equalsIgnoreCase(OWNER_RANK_REF)
|| reference.equalsIgnoreCase(SUB_OWNER_RANK_REF)
|| reference.equalsIgnoreCase(TRUSTED_RANK_REF)
|| reference.equalsIgnoreCase(COOP_RANK_REF)
|| reference.equalsIgnoreCase(MEMBER_RANK_REF)
|| reference.equalsIgnoreCase(VISITOR_RANK_REF)
|| reference.equalsIgnoreCase(BANNED_RANK_REF)
|| reference.equalsIgnoreCase(ADMIN_RANK_REF)
|| reference.equalsIgnoreCase(MOD_RANK_REF)) {
return false;
}
ranksPut(reference, value);
public RanksManager() {
// Set up the database handler to store and retrieve Island classes
handler = new Database<>(BentoBox.getInstance(), RankObject.class);
if (!handler.objectExists(RankObject.ID)) {
// Make the initial object
ranksPut(ADMIN_RANK_REF, ADMIN_RANK);
ranksPut(MOD_RANK_REF, MOD_RANK);
ranksPut(OWNER_RANK_REF, OWNER_RANK);
ranksPut(SUB_OWNER_RANK_REF, SUB_OWNER_RANK);
ranksPut(MEMBER_RANK_REF, MEMBER_RANK);
ranksPut(TRUSTED_RANK_REF, TRUSTED_RANK);
ranksPut(COOP_RANK_REF, COOP_RANK);
ranksPut(VISITOR_RANK_REF, VISITOR_RANK);
ranksPut(BANNED_RANK_REF, BANNED_RANK);
handler.saveObject(new RankObject(ranks));
} else {
handler.loadObject(RankObject.ID).getRankReference().forEach(this::ranksPut);
}
}
return true;
}
/**
* Try to add a new rank. Owner, member, visitor and banned ranks cannot be changed.
* @param reference - a reference that can be found in a locale file
* @param value - the rank value
* @return true if the rank was successfully added
*/
public boolean addRank(String reference, int value) {
if (reference.equalsIgnoreCase(OWNER_RANK_REF)
|| reference.equalsIgnoreCase(SUB_OWNER_RANK_REF)
|| reference.equalsIgnoreCase(TRUSTED_RANK_REF)
|| reference.equalsIgnoreCase(COOP_RANK_REF)
|| reference.equalsIgnoreCase(MEMBER_RANK_REF)
|| reference.equalsIgnoreCase(VISITOR_RANK_REF)
|| reference.equalsIgnoreCase(BANNED_RANK_REF)
|| reference.equalsIgnoreCase(ADMIN_RANK_REF)
|| reference.equalsIgnoreCase(MOD_RANK_REF)) {
return false;
}
ranksPut(reference, value);
private void ranksPut(String reference, int value) {
ranks.put(reference, value);
// Sort
ranks = ranks.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(
Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));
}
return true;
}
/**
* Try to remove a rank. Owner, member, visitor and banned ranks cannot be removed.
* @param reference - a reference that can be found in a locale file
* @return true if removed
*/
public boolean removeRank(String reference) {
return !reference.equalsIgnoreCase(OWNER_RANK_REF)
&& !reference.equalsIgnoreCase(SUB_OWNER_RANK_REF)
&& !reference.equalsIgnoreCase(TRUSTED_RANK_REF)
&& !reference.equalsIgnoreCase(COOP_RANK_REF)
&& !reference.equalsIgnoreCase(MEMBER_RANK_REF)
&& !reference.equalsIgnoreCase(VISITOR_RANK_REF)
&& !reference.equalsIgnoreCase(BANNED_RANK_REF)
&& !reference.equalsIgnoreCase(ADMIN_RANK_REF)
&& !reference.equalsIgnoreCase(MOD_RANK_REF) && (ranks.remove(reference) != null);
private void ranksPut(String reference, int value) {
ranks.put(reference, value);
// Sort
ranks = ranks.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(
Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));
}
}
/**
* Try to remove a rank. Owner, member, visitor and banned ranks cannot be removed.
* @param reference - a reference that can be found in a locale file
* @return true if removed
*/
public boolean removeRank(String reference) {
return !reference.equalsIgnoreCase(OWNER_RANK_REF)
&& !reference.equalsIgnoreCase(SUB_OWNER_RANK_REF)
&& !reference.equalsIgnoreCase(TRUSTED_RANK_REF)
&& !reference.equalsIgnoreCase(COOP_RANK_REF)
&& !reference.equalsIgnoreCase(MEMBER_RANK_REF)
&& !reference.equalsIgnoreCase(VISITOR_RANK_REF)
&& !reference.equalsIgnoreCase(BANNED_RANK_REF)
&& !reference.equalsIgnoreCase(ADMIN_RANK_REF)
&& !reference.equalsIgnoreCase(MOD_RANK_REF) && (ranks.remove(reference) != null);
/**
* Get the rank value for this reference
* @param reference - locale reference to the name of this rank
* @return rank value or zero if this is an unknown rank
*/
public int getRankValue(String reference) {
return ranks.getOrDefault(reference, VISITOR_RANK);
}
}
/**
* Get the ranks. Ranks are listed in ascending order
* @return immutable map of ranks
*/
public Map<String, Integer> getRanks() {
return new LinkedHashMap<>(ranks);
}
/**
* Get the rank value for this reference
* @param reference - locale reference to the name of this rank
* @return rank value or zero if this is an unknown rank
*/
public int getRankValue(String reference) {
return ranks.getOrDefault(reference, VISITOR_RANK);
}
/**
* Get the ranks. Ranks are listed in ascending order
* @return immutable map of ranks
*/
public Map<String, Integer> getRanks() {
return new LinkedHashMap<>(ranks);
}
/**
* Gets the next rank value above the current rank. Highest is {@link RanksManager#OWNER_RANK}
* @param currentRank - current rank value
* @return Optional rank value
*/
public int getRankUpValue(int currentRank) {
return getRanks().values().stream().mapToInt(x -> {
if (x > currentRank) {
return x;
}
return OWNER_RANK;
}).min().orElse(currentRank);
}
/**
* Gets the next rank value above the current rank. Highest is {@link RanksManager#OWNER_RANK}
* @param currentRank - current rank value
* @return Optional rank value
*/
public int getRankUpValue(int currentRank) {
return getRanks().values().stream().mapToInt(x -> {
if (x > currentRank) {
return x;
}
return OWNER_RANK;
}).min().orElse(currentRank);
}
/**
* Gets the previous rank value below the current rank. Lowest is {@link RanksManager#VISITOR_RANK}
* @param currentRank - current rank value
* @return Optional rank value
*/
public int getRankDownValue(int currentRank) {
return getRanks().values().stream().mapToInt(x -> {
if (x < currentRank) {
return x;
}
return VISITOR_RANK;
}).max().orElse(currentRank);
}
/**
* Gets the previous rank value below the current rank. Lowest is {@link RanksManager#VISITOR_RANK}
* @param currentRank - current rank value
* @return Optional rank value
*/
public int getRankDownValue(int currentRank) {
return getRanks().values().stream().mapToInt(x -> {
if (x < currentRank) {
return x;
}
return VISITOR_RANK;
}).max().orElse(currentRank);
}
/**
* Gets the reference to the rank name for value
* @param rank - value
* @return Reference
*/
public String getRank(int rank) {
for (Entry<String, Integer> en : ranks.entrySet()) {
if (rank == en.getValue()) {
return en.getKey();
}
}
return "";
}
/**
* Gets the reference to the rank name for value
* @param rank - value
* @return Reference
*/
public String getRank(int rank) {
for (Entry<String, Integer> en : ranks.entrySet()) {
if (rank == en.getValue()) {
return en.getKey();
}
}
return "";
}
}

View File

@ -23,7 +23,6 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import org.eclipse.jdt.annotation.NonNull;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -33,7 +32,6 @@ import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.api.commands.CompositeCommand;
@ -46,6 +44,7 @@ import world.bentobox.bentobox.managers.LocalesManager;
import world.bentobox.bentobox.managers.PlaceholdersManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
import world.bentobox.bentobox.util.Util;
/**
@ -54,205 +53,196 @@ import world.bentobox.bentobox.util.Util;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, Util.class})
public class AdminInfoCommandTest {
public class AdminInfoCommandTest extends RanksManagerBeforeClassTest {
@Mock
private CompositeCommand ic;
@Mock
private User user;
@Mock
private IslandsManager im;
@Mock
private PlayersManager pm;
@Mock
private CompositeCommand ic;
@Mock
private User user;
@Mock
private IslandsManager im;
@Mock
private PlayersManager pm;
private Island island;
private Island island;
private AdminInfoCommand iic;
private AdminInfoCommand iic;
@Mock
private Player player;
@Mock
private World world;
@Mock
private PlaceholdersManager phm;
@Mock
private @NonNull Location location;
@Mock
private IslandWorldManager iwm;
@Mock
private Player player;
@Mock
private World world;
@Mock
private PlaceholdersManager phm;
@Mock
private @NonNull Location location;
@Mock
private IslandWorldManager iwm;
/**
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
/**
*/
@Before
public void setUp() throws Exception {
super.setUp();
// IWM
when(plugin.getIWM()).thenReturn(iwm);
when(plugin.getRanksManager()).thenReturn(new RanksManager());
// IWM
when(plugin.getIWM()).thenReturn(iwm);
RanksManager rm = new RanksManager();
when(plugin.getRanksManager()).thenReturn(rm);
// Bukkit
PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS);
// Command manager
CommandsManager cm = mock(CommandsManager.class);
when(plugin.getCommandsManager()).thenReturn(cm);
// Bukkit
PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS);
// Command manager
CommandsManager cm = mock(CommandsManager.class);
when(plugin.getCommandsManager()).thenReturn(cm);
// Player
when(player.isOp()).thenReturn(false);
UUID uuid = UUID.randomUUID();
when(user.getUniqueId()).thenReturn(uuid);
when(user.getName()).thenReturn("tastybento");
when(user.getWorld()).thenReturn(world);
when(user.getPlayer()).thenReturn(player);
when(user.isPlayer()).thenReturn(true);
//user = User.getInstance(player);
// Set the User class plugin as this one
User.setPlugin(plugin);
// Player
when(player.isOp()).thenReturn(false);
UUID uuid = UUID.randomUUID();
when(user.getUniqueId()).thenReturn(uuid);
when(user.getName()).thenReturn("tastybento");
when(user.getWorld()).thenReturn(world);
when(user.getPlayer()).thenReturn(player);
when(user.isPlayer()).thenReturn(true);
//user = User.getInstance(player);
// Set the User class plugin as this one
User.setPlugin(plugin);
// Locales
LocalesManager lm = mock(LocalesManager.class);
when(lm.get(any(), any())).thenAnswer((Answer<String>) invocation -> invocation.getArgument(1, String.class));
when(plugin.getLocalesManager()).thenReturn(lm);
// Return the same string
when(phm.replacePlaceholders(any(), anyString())).thenAnswer((Answer<String>) invocation -> invocation.getArgument(1, String.class));
when(plugin.getPlaceholdersManager()).thenReturn(phm);
// Translate
when(user.getTranslation(anyString())).thenAnswer((Answer<String>) invocation -> invocation.getArgument(0, String.class));
when(user.getTranslation(anyString(), anyString(), anyString())).thenAnswer((Answer<String>) invocation -> invocation.getArgument(0, String.class));
// Locales
LocalesManager lm = mock(LocalesManager.class);
when(lm.get(any(), any())).thenAnswer((Answer<String>) invocation -> invocation.getArgument(1, String.class));
when(plugin.getLocalesManager()).thenReturn(lm);
// Return the same string
when(phm.replacePlaceholders(any(), anyString())).thenAnswer((Answer<String>) invocation -> invocation.getArgument(1, String.class));
when(plugin.getPlaceholdersManager()).thenReturn(phm);
// Translate
when(user.getTranslation(anyString())).thenAnswer((Answer<String>) invocation -> invocation.getArgument(0, String.class));
when(user.getTranslation(anyString(), anyString(), anyString())).thenAnswer((Answer<String>) invocation -> invocation.getArgument(0, String.class));
// Island manager
island = new Island(location, uuid, 100);
island.setRange(400);
when(location.toVector()).thenReturn(new Vector(1,2,3));
when(plugin.getIslands()).thenReturn(im);
Optional<Island> optionalIsland = Optional.of(island);
when(im.getIslandAt(any())).thenReturn(optionalIsland);
when(im.getIsland(any(), any(UUID.class))).thenReturn(island);
// Island manager
island = new Island(location, uuid, 100);
island.setRange(400);
when(location.toVector()).thenReturn(new Vector(1,2,3));
when(plugin.getIslands()).thenReturn(im);
Optional<Island> optionalIsland = Optional.of(island);
when(im.getIslandAt(any())).thenReturn(optionalIsland);
when(im.getIsland(any(), any(UUID.class))).thenReturn(island);
// Players manager
when(plugin.getPlayers()).thenReturn(pm);
when(pm.getUUID(any())).thenReturn(uuid);
// Players manager
when(plugin.getPlayers()).thenReturn(pm);
when(pm.getUUID(any())).thenReturn(uuid);
// Command
iic = new AdminInfoCommand(ic);
}
// Command
iic = new AdminInfoCommand(ic);
}
/**
*/
@After
public void tearDown() {
User.clearUsers();
Mockito.framework().clearInlineMocks();
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#setup()}.
*/
@Test
public void testSetup() {
assertEquals("mod.info", iic.getPermission());
assertFalse(iic.isOnlyPlayer());
assertEquals("commands.admin.info.parameters", iic.getParameters());
assertEquals("commands.admin.info.description", iic.getDescription());
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#setup()}.
*/
@Test
public void testSetup() {
assertEquals("mod.info", iic.getPermission());
assertFalse(iic.isOnlyPlayer());
assertEquals("commands.admin.info.parameters", iic.getParameters());
assertEquals("commands.admin.info.description", iic.getDescription());
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringTooManyArgs() {
assertFalse(iic.execute(user, "", Arrays.asList("hdhh", "hdhdhd")));
verify(user).sendMessage("commands.help.header", "[label]", "commands.help.console");
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringTooManyArgs() {
assertFalse(iic.execute(user, "", Arrays.asList("hdhh", "hdhdhd")));
verify(user).sendMessage("commands.help.header", "[label]", "commands.help.console");
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringNoArgsConsole() {
CommandSender console = mock(CommandSender.class);
User sender = User.getInstance(console);
assertFalse(iic.execute(sender, "", Collections.emptyList()));
verify(user, never()).sendMessage("commands.help.header", "[label]", "commands.help.console");
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringNoArgsConsole() {
CommandSender console = mock(CommandSender.class);
User sender = User.getInstance(console);
assertFalse(iic.execute(sender, "", Collections.emptyList()));
verify(user, never()).sendMessage("commands.help.header", "[label]", "commands.help.console");
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringNoArgsNoIsland() {
when(im.getIslandAt(any())).thenReturn(Optional.empty());
assertTrue(iic.execute(user, "", Collections.emptyList()));
verify(user).sendMessage("commands.admin.info.no-island");
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringNoArgsNoIsland() {
when(im.getIslandAt(any())).thenReturn(Optional.empty());
assertTrue(iic.execute(user, "", Collections.emptyList()));
verify(user).sendMessage("commands.admin.info.no-island");
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringNoArgsSuccess() {
assertTrue(iic.execute(user, "", Collections.emptyList()));
verify(user).sendMessage("commands.admin.info.title");
verify(user).sendMessage(eq("commands.admin.info.island-uuid"), eq("[uuid]"), any());
verify(user).sendMessage(eq("commands.admin.info.owner"), eq("[owner]"), eq(null), eq("[uuid]"), any());
verify(user).sendMessage(eq("commands.admin.info.last-login"), eq("[date]"), any());
verify(user).sendMessage("commands.admin.info.deaths", "[number]", "0");
verify(user).sendMessage("commands.admin.info.resets-left", "[number]", "0", "[total]", "0");
verify(user).sendMessage("commands.admin.info.team-members-title");
verify(user).sendMessage("commands.admin.info.team-owner-format", "[name]", null, "[rank]", "ranks.owner");
verify(user).sendMessage("commands.admin.info.island-protection-center", "[xyz]", "0,0,0");
verify(user).sendMessage("commands.admin.info.island-center", "[xyz]", "0,0,0");
verify(user).sendMessage("commands.admin.info.island-coords", "[xz1]", "-400,0,-400", "[xz2]", "400,0,400");
verify(user).sendMessage("commands.admin.info.protection-range", "[range]", "100");
verify(user).sendMessage("commands.admin.info.max-protection-range", "[range]", "100");
verify(user).sendMessage("commands.admin.info.protection-coords", "[xz1]", "-100,0,-100", "[xz2]", "99,0,99");
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringNoArgsSuccess() {
assertTrue(iic.execute(user, "", Collections.emptyList()));
verify(user).sendMessage("commands.admin.info.title");
verify(user).sendMessage(eq("commands.admin.info.island-uuid"), eq("[uuid]"), any());
verify(user).sendMessage(eq("commands.admin.info.owner"), eq("[owner]"), eq(null), eq("[uuid]"), any());
verify(user).sendMessage(eq("commands.admin.info.last-login"), eq("[date]"), any());
verify(user).sendMessage("commands.admin.info.deaths", "[number]", "0");
verify(user).sendMessage("commands.admin.info.resets-left", "[number]", "0", "[total]", "0");
verify(user).sendMessage("commands.admin.info.team-members-title");
verify(user).sendMessage("commands.admin.info.team-owner-format", "[name]", null, "[rank]", "ranks.owner");
verify(user).sendMessage("commands.admin.info.island-protection-center", "[xyz]", "0,0,0");
verify(user).sendMessage("commands.admin.info.island-center", "[xyz]", "0,0,0");
verify(user).sendMessage("commands.admin.info.island-coords", "[xz1]", "-400,0,-400", "[xz2]", "400,0,400");
verify(user).sendMessage("commands.admin.info.protection-range", "[range]", "100");
verify(user).sendMessage("commands.admin.info.max-protection-range", "[range]", "100");
verify(user).sendMessage("commands.admin.info.protection-coords", "[xz1]", "-100,0,-100", "[xz2]", "99,0,99");
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringArgsSuccess() {
assertTrue(iic.execute(user, "", Collections.singletonList("tastybento")));
verify(user).sendMessage("commands.admin.info.title");
verify(user).sendMessage(eq("commands.admin.info.island-uuid"), eq("[uuid]"), any());
verify(user).sendMessage(eq("commands.admin.info.owner"), eq("[owner]"), eq(null), eq("[uuid]"), any());
verify(user).sendMessage(eq("commands.admin.info.last-login"), eq("[date]"), any());
verify(user).sendMessage("commands.admin.info.deaths", "[number]", "0");
verify(user).sendMessage("commands.admin.info.resets-left", "[number]", "0", "[total]", "0");
verify(user).sendMessage("commands.admin.info.team-members-title");
verify(user).sendMessage("commands.admin.info.team-owner-format", "[name]", null, "[rank]", "ranks.owner");
verify(user).sendMessage("commands.admin.info.island-protection-center", "[xyz]", "0,0,0");
verify(user).sendMessage("commands.admin.info.island-center", "[xyz]", "0,0,0");
verify(user).sendMessage("commands.admin.info.island-coords", "[xz1]", "-400,0,-400", "[xz2]", "400,0,400");
verify(user).sendMessage("commands.admin.info.protection-range", "[range]", "100");
verify(user).sendMessage("commands.admin.info.max-protection-range", "[range]", "100");
verify(user).sendMessage("commands.admin.info.protection-coords", "[xz1]", "-100,0,-100", "[xz2]", "99,0,99");
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringArgsSuccess() {
assertTrue(iic.execute(user, "", Collections.singletonList("tastybento")));
verify(user).sendMessage("commands.admin.info.title");
verify(user).sendMessage(eq("commands.admin.info.island-uuid"), eq("[uuid]"), any());
verify(user).sendMessage(eq("commands.admin.info.owner"), eq("[owner]"), eq(null), eq("[uuid]"), any());
verify(user).sendMessage(eq("commands.admin.info.last-login"), eq("[date]"), any());
verify(user).sendMessage("commands.admin.info.deaths", "[number]", "0");
verify(user).sendMessage("commands.admin.info.resets-left", "[number]", "0", "[total]", "0");
verify(user).sendMessage("commands.admin.info.team-members-title");
verify(user).sendMessage("commands.admin.info.team-owner-format", "[name]", null, "[rank]", "ranks.owner");
verify(user).sendMessage("commands.admin.info.island-protection-center", "[xyz]", "0,0,0");
verify(user).sendMessage("commands.admin.info.island-center", "[xyz]", "0,0,0");
verify(user).sendMessage("commands.admin.info.island-coords", "[xz1]", "-400,0,-400", "[xz2]", "400,0,400");
verify(user).sendMessage("commands.admin.info.protection-range", "[range]", "100");
verify(user).sendMessage("commands.admin.info.max-protection-range", "[range]", "100");
verify(user).sendMessage("commands.admin.info.protection-coords", "[xz1]", "-100,0,-100", "[xz2]", "99,0,99");
}
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringArgsNoIsland() {
when(im.getIsland(any(), any(UUID.class))).thenReturn(null);
assertFalse(iic.execute(user, "", Collections.singletonList("tastybento")));
verify(user).sendMessage("general.errors.player-has-no-island");
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringArgsNoIsland() {
when(im.getIsland(any(), any(UUID.class))).thenReturn(null);
assertFalse(iic.execute(user, "", Collections.singletonList("tastybento")));
verify(user).sendMessage("general.errors.player-has-no-island");
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringArgsUnknownPlayer() {
PowerMockito.mockStatic(Util.class);
when(Util.getUUID(any())).thenReturn(null);
assertFalse(iic.execute(user, "", Collections.singletonList("tastybento")));
verify(user).sendMessage("general.errors.unknown-player", "[name]", "tastybento");
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.AdminInfoCommand#execute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/
@Test
public void testExecuteUserStringListOfStringArgsUnknownPlayer() {
PowerMockito.mockStatic(Util.class);
when(Util.getUUID(any())).thenReturn(null);
assertFalse(iic.execute(user, "", Collections.singletonList("tastybento")));
verify(user).sendMessage("general.errors.unknown-player", "[name]", "tastybento");
}
}
}

View File

@ -19,17 +19,14 @@ import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.api.commands.CompositeCommand;
@ -38,6 +35,7 @@ import world.bentobox.bentobox.database.objects.Island;
import world.bentobox.bentobox.managers.IslandsManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
import world.bentobox.bentobox.util.Util;
/**
@ -46,7 +44,7 @@ import world.bentobox.bentobox.util.Util;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, Util.class})
public class AdminSetrankCommandTest {
public class AdminSetrankCommandTest extends RanksManagerBeforeClassTest {
@Mock
private CompositeCommand ac;
@ -66,9 +64,7 @@ public class AdminSetrankCommandTest {
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
Util.setPlugin(plugin);
// Ranks Manager
@ -104,14 +100,6 @@ public class AdminSetrankCommandTest {
when(Bukkit.getPluginManager()).thenReturn(pim);
}
/**
*/
@After
public void tearDown() {
User.clearUsers();
Mockito.framework().clearInlineMocks();
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.admin.AdminSetrankCommand#AdminSetrankCommand(world.bentobox.bentobox.api.commands.CompositeCommand)}.
*/

View File

@ -29,7 +29,6 @@ import org.bukkit.inventory.ItemFactory;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.PluginManager;
import org.bukkit.scheduler.BukkitScheduler;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -39,7 +38,6 @@ import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
@ -55,6 +53,7 @@ import world.bentobox.bentobox.managers.IslandsManager;
import world.bentobox.bentobox.managers.LocalesManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
import world.bentobox.bentobox.util.Util;
/**
@ -63,7 +62,7 @@ import world.bentobox.bentobox.util.Util;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, User.class, Util.class})
public class AdminSettingsCommandTest {
public class AdminSettingsCommandTest extends RanksManagerBeforeClassTest {
private AdminSettingsCommand asc;
@Mock
@ -96,9 +95,7 @@ public class AdminSettingsCommandTest {
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
Util.setPlugin(plugin);
// Command manager
@ -177,7 +174,8 @@ public class AdminSettingsCommandTest {
when(plugin.getFlagsManager()).thenReturn(fm);
// RnksManager
when(plugin.getRanksManager()).thenReturn(new RanksManager());
RanksManager rm = new RanksManager();
when(plugin.getRanksManager()).thenReturn(rm);
@ -185,15 +183,6 @@ public class AdminSettingsCommandTest {
}
/**
*/
@After
public void tearDown() throws Exception {
User.clearUsers();
Mockito.framework().clearInlineMocks();
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.admin.AdminSettingsCommand#setup()}.
*/

View File

@ -27,7 +27,6 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.bukkit.scheduler.BukkitScheduler;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -37,7 +36,6 @@ import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
@ -53,6 +51,7 @@ import world.bentobox.bentobox.managers.LocalesManager;
import world.bentobox.bentobox.managers.PlaceholdersManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
@ -60,7 +59,7 @@ import world.bentobox.bentobox.managers.RanksManager;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class})
public class IslandBanCommandTest {
public class IslandBanCommandTest extends RanksManagerBeforeClassTest {
@Mock
private CompositeCommand ic;
@ -83,9 +82,7 @@ public class IslandBanCommandTest {
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
User.setPlugin(plugin);
// Command manager
@ -174,12 +171,6 @@ public class IslandBanCommandTest {
}
@After
public void tearDown() {
User.clearUsers();
Mockito.framework().clearInlineMocks();
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.IslandBanCommand#execute(User, String, List)}.
*/

View File

@ -21,17 +21,14 @@ import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitScheduler;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
@ -44,6 +41,7 @@ import world.bentobox.bentobox.managers.IslandWorldManager;
import world.bentobox.bentobox.managers.IslandsManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
@ -51,7 +49,7 @@ import world.bentobox.bentobox.managers.RanksManager;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, User.class })
public class IslandBanlistCommandTest {
public class IslandBanlistCommandTest extends RanksManagerBeforeClassTest {
@Mock
private CompositeCommand ic;
@ -69,9 +67,7 @@ public class IslandBanlistCommandTest {
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
// Command manager
CommandsManager cm = mock(CommandsManager.class);
@ -126,11 +122,6 @@ public class IslandBanlistCommandTest {
}
@After
public void tearDown() {
Mockito.framework().clearInlineMocks();
}
/**
* Test method for {@link IslandBanlistCommand#canExecute(User, String, java.util.List)}.
*/

View File

@ -23,7 +23,6 @@ import org.bukkit.World;
import org.bukkit.entity.Player;
import org.eclipse.jdt.annotation.NonNull;
import org.jetbrains.annotations.NotNull;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -32,7 +31,6 @@ import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
@ -46,6 +44,7 @@ import world.bentobox.bentobox.managers.IslandWorldManager;
import world.bentobox.bentobox.managers.IslandsManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
@ -53,7 +52,7 @@ import world.bentobox.bentobox.managers.RanksManager;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, User.class })
public class IslandDeletehomeCommandTest {
public class IslandDeletehomeCommandTest extends RanksManagerBeforeClassTest {
@Mock
private CompositeCommand ic;
@ -79,9 +78,7 @@ public class IslandDeletehomeCommandTest {
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
// Command manager
CommandsManager cm = mock(CommandsManager.class);
@ -147,15 +144,6 @@ public class IslandDeletehomeCommandTest {
idh = new IslandDeletehomeCommand(ic);
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
User.clearUsers();
Mockito.framework().clearInlineMocks();
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.IslandDeletehomeCommand#IslandDeletehomeCommand(world.bentobox.bentobox.api.commands.CompositeCommand)}.
*/

View File

@ -26,7 +26,6 @@ import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.bukkit.scheduler.BukkitScheduler;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -36,7 +35,6 @@ import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
@ -53,6 +51,7 @@ import world.bentobox.bentobox.managers.LocalesManager;
import world.bentobox.bentobox.managers.PlaceholdersManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
@ -60,7 +59,7 @@ import world.bentobox.bentobox.managers.RanksManager;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, User.class })
public class IslandExpelCommandTest {
public class IslandExpelCommandTest extends RanksManagerBeforeClassTest {
@Mock
private CompositeCommand ic;
@ -88,9 +87,7 @@ public class IslandExpelCommandTest {
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
User.setPlugin(plugin);
// Command manager
@ -166,14 +163,6 @@ public class IslandExpelCommandTest {
iec = new IslandExpelCommand(ic);
}
/**
*/
@After
public void tearDown() {
User.clearUsers();
Mockito.framework().clearInlineMocks();
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.IslandExpelCommand#IslandExpelCommand(world.bentobox.bentobox.api.commands.CompositeCommand)}.
*/

View File

@ -23,7 +23,6 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import org.eclipse.jdt.annotation.NonNull;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -33,7 +32,6 @@ import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.api.commands.CompositeCommand;
@ -46,6 +44,7 @@ import world.bentobox.bentobox.managers.LocalesManager;
import world.bentobox.bentobox.managers.PlaceholdersManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
import world.bentobox.bentobox.util.Util;
/**
@ -54,7 +53,7 @@ import world.bentobox.bentobox.util.Util;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, Util.class})
public class IslandInfoCommandTest {
public class IslandInfoCommandTest extends RanksManagerBeforeClassTest {
@Mock
private CompositeCommand ic;
@ -84,13 +83,12 @@ public class IslandInfoCommandTest {
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
// IWM
when(plugin.getIWM()).thenReturn(iwm);
when(plugin.getRanksManager()).thenReturn(new RanksManager());
RanksManager rm = new RanksManager();
when(plugin.getRanksManager()).thenReturn(rm);
// Bukkit
PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS);
@ -139,14 +137,6 @@ public class IslandInfoCommandTest {
iic = new IslandInfoCommand(ic);
}
/**
*/
@After
public void tearDown() {
User.clearUsers();
Mockito.framework().clearInlineMocks();
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.IslandInfoCommand#setup()}.
*/

View File

@ -24,7 +24,6 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.bukkit.scheduler.BukkitScheduler;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -33,7 +32,6 @@ import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
@ -46,6 +44,7 @@ import world.bentobox.bentobox.managers.IslandWorldManager;
import world.bentobox.bentobox.managers.IslandsManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
@ -53,7 +52,7 @@ import world.bentobox.bentobox.managers.RanksManager;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, User.class })
public class IslandUnbanCommandTest {
public class IslandUnbanCommandTest extends RanksManagerBeforeClassTest {
@Mock
private CompositeCommand ic;
@ -71,9 +70,7 @@ public class IslandUnbanCommandTest {
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
User.setPlugin(plugin);
// Command manager
@ -135,11 +132,6 @@ public class IslandUnbanCommandTest {
}
@After
public void tearDown() {
Mockito.framework().clearInlineMocks();
}
/**
* Test method for {@link IslandUnbanCommand#canExecute(User, String, List)}
*/

View File

@ -18,7 +18,6 @@ import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitScheduler;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -27,7 +26,6 @@ import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import com.google.common.collect.ImmutableSet;
@ -43,6 +41,7 @@ import world.bentobox.bentobox.managers.LocalesManager;
import world.bentobox.bentobox.managers.PlaceholdersManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
@ -50,7 +49,7 @@ import world.bentobox.bentobox.managers.RanksManager;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, User.class })
public class IslandTeamCoopCommandTest {
public class IslandTeamCoopCommandTest extends RanksManagerBeforeClassTest {
@Mock
private IslandTeamCommand ic;
@ -69,9 +68,7 @@ public class IslandTeamCoopCommandTest {
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
// Command manager
CommandsManager cm = mock(CommandsManager.class);
@ -145,11 +142,6 @@ public class IslandTeamCoopCommandTest {
}
@After
public void tearDown() {
User.clearUsers();
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.team.IslandTeamCoopCommand#canExecute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/

View File

@ -29,7 +29,6 @@ import org.mockito.Mock;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import com.google.common.collect.ImmutableSet;
@ -46,6 +45,7 @@ import world.bentobox.bentobox.managers.IslandsManager;
import world.bentobox.bentobox.managers.LocalesManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
@ -53,7 +53,7 @@ import world.bentobox.bentobox.managers.RanksManager;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, User.class })
public class IslandTeamInviteCommandTest {
public class IslandTeamInviteCommandTest extends RanksManagerBeforeClassTest {
@Mock
private IslandTeamCommand ic;
@ -86,10 +86,8 @@ public class IslandTeamInviteCommandTest {
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
// Command manager
CommandsManager cm = mock(CommandsManager.class);
when(plugin.getCommandsManager()).thenReturn(cm);

View File

@ -25,7 +25,6 @@ import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.bukkit.scheduler.BukkitScheduler;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -34,7 +33,6 @@ import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSet.Builder;
@ -55,13 +53,14 @@ import world.bentobox.bentobox.managers.LocalesManager;
import world.bentobox.bentobox.managers.PlaceholdersManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, User.class })
public class IslandTeamKickCommandTest {
public class IslandTeamKickCommandTest extends RanksManagerBeforeClassTest {
@Mock
private CompositeCommand ic;
@ -94,9 +93,7 @@ public class IslandTeamKickCommandTest {
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
// Command manager
CommandsManager cm = mock(CommandsManager.class);
@ -194,10 +191,6 @@ public class IslandTeamKickCommandTest {
when(island.getRank(notUUID)).thenReturn(RanksManager.MEMBER_RANK);
}
@After
public void tearDown() {
User.clearUsers();
}
/**
* Test method for {@link IslandTeamKickCommand#execute(User, String, java.util.List)}

View File

@ -20,7 +20,6 @@ import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.eclipse.jdt.annotation.Nullable;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -29,7 +28,6 @@ import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import com.google.common.collect.ImmutableSet;
@ -44,6 +42,7 @@ import world.bentobox.bentobox.managers.IslandsManager;
import world.bentobox.bentobox.managers.PlaceholdersManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
@ -51,7 +50,7 @@ import world.bentobox.bentobox.managers.RanksManager;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, User.class })
public class IslandTeamPromoteCommandTest {
public class IslandTeamPromoteCommandTest extends RanksManagerBeforeClassTest {
@Mock
Player player;
@ -82,9 +81,7 @@ public class IslandTeamPromoteCommandTest {
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
// Command manager
CommandsManager cm = mock(CommandsManager.class);
@ -145,14 +142,6 @@ public class IslandTeamPromoteCommandTest {
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
User.clearUsers();
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.team.IslandTeamPromoteCommand#IslandTeamPromoteCommand(world.bentobox.bentobox.api.commands.CompositeCommand, java.lang.String)}.
*/

View File

@ -19,7 +19,6 @@ import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitScheduler;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -28,7 +27,6 @@ import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import com.google.common.collect.ImmutableSet;
@ -44,6 +42,7 @@ import world.bentobox.bentobox.managers.LocalesManager;
import world.bentobox.bentobox.managers.PlaceholdersManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
@ -51,7 +50,7 @@ import world.bentobox.bentobox.managers.RanksManager;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, User.class })
public class IslandTeamTrustCommandTest {
public class IslandTeamTrustCommandTest extends RanksManagerBeforeClassTest {
@Mock
private IslandTeamCommand ic;
@ -74,9 +73,7 @@ public class IslandTeamTrustCommandTest {
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
// Command manager
CommandsManager cm = mock(CommandsManager.class);
@ -156,11 +153,6 @@ public class IslandTeamTrustCommandTest {
}
@After
public void tearDown() {
User.clearUsers();
}
/**
* Test method for {@link world.bentobox.bentobox.api.commands.island.team.IslandTeamTrustCommand#canExecute(world.bentobox.bentobox.api.user.User, java.lang.String, java.util.List)}.
*/

View File

@ -30,7 +30,6 @@ import org.mockito.Mock;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
@ -44,6 +43,7 @@ import world.bentobox.bentobox.managers.IslandsManager;
import world.bentobox.bentobox.managers.LocalesManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
@ -51,7 +51,7 @@ import world.bentobox.bentobox.managers.RanksManager;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, User.class })
public class IslandTeamUncoopCommandTest {
public class IslandTeamUncoopCommandTest extends RanksManagerBeforeClassTest {
private CompositeCommand ic;
private UUID uuid;
@ -67,9 +67,7 @@ public class IslandTeamUncoopCommandTest {
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
// Command manager
CommandsManager cm = mock(CommandsManager.class);

View File

@ -29,7 +29,6 @@ import org.mockito.Mock;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.Settings;
@ -43,6 +42,7 @@ import world.bentobox.bentobox.managers.IslandsManager;
import world.bentobox.bentobox.managers.LocalesManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
@ -50,7 +50,7 @@ import world.bentobox.bentobox.managers.RanksManager;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, User.class })
public class IslandTeamUntrustCommandTest {
public class IslandTeamUntrustCommandTest extends RanksManagerBeforeClassTest {
private CompositeCommand ic;
private UUID uuid;
@ -66,10 +66,8 @@ public class IslandTeamUntrustCommandTest {
*/
@Before
public void setUp() throws Exception {
// Set up plugin
BentoBox plugin = mock(BentoBox.class);
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
super.setUp();
// Command manager
CommandsManager cm = mock(CommandsManager.class);
when(plugin.getCommandsManager()).thenReturn(cm);

View File

@ -25,7 +25,6 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.Inventory;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -35,7 +34,6 @@ import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.api.addons.GameModeAddon;
@ -50,6 +48,7 @@ import world.bentobox.bentobox.managers.CommandsManager;
import world.bentobox.bentobox.managers.IslandWorldManager;
import world.bentobox.bentobox.managers.IslandsManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
import world.bentobox.bentobox.panels.settings.SettingsTab;
import world.bentobox.bentobox.util.Util;
@ -59,7 +58,7 @@ import world.bentobox.bentobox.util.Util;
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({Bukkit.class, BentoBox.class, Util.class})
public class CommandRankClickListenerTest {
public class CommandRankClickListenerTest extends RanksManagerBeforeClassTest {
@Mock
private User user;
@Mock
@ -67,8 +66,6 @@ public class CommandRankClickListenerTest {
@Mock
private TabbedPanel panel;
@Mock
private BentoBox plugin;
@Mock
private IslandWorldManager iwm;
@Mock
private @NonNull Inventory inv;
@ -94,11 +91,11 @@ public class CommandRankClickListenerTest {
*/
@Before
public void setUp() throws Exception {
super.setUp();
// Bukkit
PowerMockito.mockStatic(Bukkit.class, Mockito.RETURNS_MOCKS);
// Set up plugin
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
// Island
when(island.getOwner()).thenReturn(uuid);
when(island.isAllowed(user, Flags.CHANGE_SETTINGS)).thenReturn(true);
@ -146,14 +143,6 @@ public class CommandRankClickListenerTest {
crcl = new CommandRankClickListener();
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
Mockito.framework().clearInlineMocks();
}
/**
* Test method for {@link world.bentobox.bentobox.listeners.flags.clicklisteners.CommandRankClickListener#onClick(world.bentobox.bentobox.api.panels.Panel, world.bentobox.bentobox.api.user.User, org.bukkit.event.inventory.ClickType, int)}.
*/

View File

@ -23,7 +23,6 @@ import org.powermock.modules.junit4.PowerMockRunner;
import com.google.common.collect.ImmutableSet;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.TestWorldSettings;
import world.bentobox.bentobox.api.addons.GameModeAddon;
import world.bentobox.bentobox.api.configuration.WorldSettings;
@ -33,13 +32,14 @@ import world.bentobox.bentobox.managers.IslandWorldManager;
import world.bentobox.bentobox.managers.IslandsManager;
import world.bentobox.bentobox.managers.PlayersManager;
import world.bentobox.bentobox.managers.RanksManager;
import world.bentobox.bentobox.managers.RanksManagerBeforeClassTest;
/**
* @author tastybento
*
*/
@RunWith(PowerMockRunner.class)
public class GameModePlaceholderTest {
public class GameModePlaceholderTest extends RanksManagerBeforeClassTest {
@Mock
private GameModeAddon addon;
@ -53,12 +53,10 @@ public class GameModePlaceholderTest {
@Mock
private World world;
@Mock
private BentoBox plugin;
@Mock
private IslandWorldManager iwm;
@Mock
private IslandsManager im;
private final RanksManager rm = new RanksManager();
private RanksManager rm;
@Mock
private @Nullable Location location;
@ -67,6 +65,8 @@ public class GameModePlaceholderTest {
*/
@Before
public void setUp() throws Exception {
super.setUp();
rm = new RanksManager();
uuid = UUID.randomUUID();
when(addon.getPlayers()).thenReturn(pm);
when(addon.getIslands()).thenReturn(im);

View File

@ -250,8 +250,6 @@ public class PlayersManagerTest {
pm = new PlayersManager(plugin);
}
/**
*/
@After
public void tearDown() throws Exception {
User.clearUsers();

View File

@ -0,0 +1,84 @@
package world.bentobox.bentobox.managers;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.beans.IntrospectionException;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Comparator;
import java.util.concurrent.CompletableFuture;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.reflect.Whitebox;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.bentobox.database.AbstractDatabaseHandler;
import world.bentobox.bentobox.database.DatabaseSetup;
/**
* @author tastybento
*
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({BentoBox.class, DatabaseSetup.class,})
public abstract class RanksManagerBeforeClassTest {
private static AbstractDatabaseHandler<Object> h;
@Mock
public BentoBox plugin;
@SuppressWarnings("unchecked")
@BeforeClass
public static void beforeClass() throws IllegalAccessException, InvocationTargetException, IntrospectionException {
// This has to be done beforeClass otherwise the tests will interfere with each other
h = mock(AbstractDatabaseHandler.class);
// Database
PowerMockito.mockStatic(DatabaseSetup.class);
DatabaseSetup dbSetup = mock(DatabaseSetup.class);
when(DatabaseSetup.getDatabase()).thenReturn(dbSetup);
when(dbSetup.getHandler(any())).thenReturn(h);
when(h.saveObject(any())).thenReturn(CompletableFuture.completedFuture(true));
}
/**
*/
@Before
public void setUp() throws Exception {
// Set up plugin
Whitebox.setInternalState(BentoBox.class, "instance", plugin);
}
@After
public void tearDown() throws IOException {
User.clearUsers();
Mockito.framework().clearInlineMocks();
deleteAll(new File("database"));
deleteAll(new File("database_backup"));
}
private void deleteAll(File file) throws IOException {
if (file.exists()) {
Files.walk(file.toPath())
.sorted(Comparator.reverseOrder())
.map(Path::toFile)
.forEach(File::delete);
}
}
}

View File

@ -6,31 +6,32 @@ import static org.junit.Assert.assertTrue;
import java.util.Map;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import world.bentobox.bentobox.database.DatabaseSetup;
/**
* @author tastybento
*
*/
public class RanksManagerTest {
@RunWith(PowerMockRunner.class)
@PrepareForTest({DatabaseSetup.class,})
public class RanksManagerTest extends RanksManagerBeforeClassTest {
public static RanksManager ranksManager;
/**
*/
@Before
public void setUp() throws Exception {
super.setUp();
ranksManager = new RanksManager();
}
@After
public void tearDown() {
Mockito.framework().clearInlineMocks();
}
/**
* Test method for {@link world.bentobox.bentobox.managers.RanksManager#addRank(java.lang.String, int)}.
*/