3.9-beta.2

This commit is contained in:
okx-code
2020-06-26 23:19:41 +01:00
parent dd81b2432b
commit 55e190a5c2
27 changed files with 617 additions and 272 deletions
@@ -1,4 +1,55 @@
package sh.okx.rankup;
public class RankupPlaceholderTest {
import be.seeseemelk.mockbukkit.entity.PlayerMock;
import org.junit.Test;
import sh.okx.rankup.placeholders.RankupExpansion;
import static org.junit.Assert.assertEquals;
public class RankupPlaceholderTest extends RankupTest {
@Test
public void testCurrentRank() {
PlayerMock player = server.addPlayer();
groupProvider.addGroup(player.getUniqueId(), "C");
RankupExpansion expansion = plugin.getPlaceholders().getExpansion();
assertEquals("C", expansion.placeholder(player, "current_rank"));
}
@Test
public void testNextRank() {
PlayerMock player = server.addPlayer();
groupProvider.addGroup(player.getUniqueId(), "C");
RankupExpansion expansion = plugin.getPlaceholders().getExpansion();
assertEquals("D", expansion.placeholder(player, "next_rank"));
}
@Test
public void testStatusCurrent() {
PlayerMock player = server.addPlayer();
groupProvider.addGroup(player.getUniqueId(), "B");
RankupExpansion expansion = plugin.getPlaceholders().getExpansion();
assertEquals("Current", expansion.placeholder(player, "status_b"));
}
@Test
public void testStatusComplete() {
PlayerMock player = server.addPlayer();
groupProvider.addGroup(player.getUniqueId(), "D");
RankupExpansion expansion = plugin.getPlaceholders().getExpansion();
assertEquals("Complete", expansion.placeholder(player, "status_b"));
}
@Test
public void testStatusIncomplete() {
PlayerMock player = server.addPlayer();
groupProvider.addGroup(player.getUniqueId(), "A");
RankupExpansion expansion = plugin.getPlaceholders().getExpansion();
assertEquals("Incomplete", expansion.placeholder(player, "status_b"));
}
}
@@ -1,4 +1,101 @@
package sh.okx.rankup;
import be.seeseemelk.mockbukkit.MockBukkit;
import be.seeseemelk.mockbukkit.ServerMock;
import be.seeseemelk.mockbukkit.entity.PlayerMock;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import sh.okx.rankup.economy.TestEconomyProvider;
import sh.okx.rankup.hook.GroupProvider;
import sh.okx.rankup.hook.TestGroupProvider;
import sh.okx.rankup.hook.TestPermissionManager;
import sh.okx.rankup.messages.Message;
import sh.okx.rankup.messages.Variable;
import sh.okx.rankup.ranks.Rank;
import sh.okx.rankup.ranks.RankElement;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class RankupTest {
protected GroupProvider groupProvider;
protected ServerMock server;
protected RankupPlugin plugin;
@Before
public void setup() {
System.setProperty("TEST", "true");
try {
groupProvider = new TestGroupProvider();
server = MockBukkit.mock();
plugin = MockBukkit.load(RankupPlugin.class, new TestPermissionManager(groupProvider), new TestEconomyProvider());
// let rankup finish setting up
server.getScheduler().performTicks(1);
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testAutoRankup() {
PlayerMock player = server.addPlayer();
// requirement of $1000
plugin.getEconomy().setPlayer(player, 1000);
// give them group A
groupProvider.addGroup(player.getUniqueId(), "A");
// give the permission to auto rankup
player.addAttachment(plugin, "rankup.auto", true);
plugin.autoRankup.run();
assertTrue(groupProvider.inGroup(player.getUniqueId(), "B"));
assertEquals(0, plugin.getEconomy().getBalance(player), 0);
}
@Test
public void testNotInLadder() {
PlayerMock player = server.addPlayer();
plugin.getHelper().rankup(player);
player.assertSaid(plugin.getMessage(Message.NOT_IN_LADDER).replace(Variable.PLAYER, player.getName()).toString());
player.assertNoMoreSaid();
}
@Test
public void testLastRank() {
PlayerMock player = server.addPlayer();
groupProvider.addGroup(player.getUniqueId(), "D");
plugin.getHelper().rankup(player);
player.assertSaid(plugin.getMessage(Message.NO_RANKUP).replaceRanks(player, plugin.getRankups().getTree().last().getRank().getRank()).toString());
player.assertNoMoreSaid();
}
@Test
public void testMoneyRequirement() {
PlayerMock player = server.addPlayer();
plugin.getEconomy().setPlayer(player, 500);
groupProvider.addGroup(player.getUniqueId(), "A");
plugin.getHelper().rankup(player);
RankElement<Rank> element = plugin.getRankups().getTree().getFirst();
Rank rank = element.getRank();
player.assertSaid(plugin.replaceMoneyRequirements(plugin.getMessage(rank, Message.REQUIREMENTS_NOT_MET).replaceRanks(player, rank, element.getNext().getRank()), player, rank).toString());
player.assertNoMoreSaid();
}
@After
public void tearDown() {
MockBukkit.unmock();
System.clearProperty("TEST");
}
}
@@ -1,4 +1,25 @@
package sh.okx.rankup.economy;
public class TestEconomy {
import org.bukkit.entity.Player;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class TestEconomy implements Economy {
private final Map<UUID, Double> balances = new HashMap<>();
@Override
public double getBalance(Player player) {
return balances.get(player.getUniqueId());
}
@Override
public void withdrawPlayer(Player player, double amount) {
balances.put(player.getUniqueId(), balances.getOrDefault(player.getUniqueId(), 0D) - amount);
}
public void setPlayer(Player player, double amount) {
balances.put(player.getUniqueId(), amount);
}
}
@@ -1,4 +1,8 @@
package sh.okx.rankup.economy;
public class TestEconomyProvider {
public class TestEconomyProvider implements EconomyProvider {
@Override
public Economy getEconomy() {
return new TestEconomy();
}
}
@@ -1,4 +1,25 @@
package sh.okx.rankup.hook;
public class TestGroupProvider {
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import java.util.UUID;
public class TestGroupProvider implements GroupProvider {
private Multimap<UUID, String> groups = ArrayListMultimap.create();
@Override
public boolean inGroup(UUID uuid, String group) {
return groups.containsEntry(uuid, group.toLowerCase());
}
@Override
public void addGroup(UUID uuid, String group) {
groups.put(uuid, group.toLowerCase());
}
@Override
public void removeGroup(UUID uuid, String group) {
groups.remove(uuid, group.toLowerCase());
}
}
@@ -1,4 +1,19 @@
package sh.okx.rankup.hook;
public class TestPermissionManager {
public class TestPermissionManager implements PermissionManager {
private final GroupProvider groupProvider;
public TestPermissionManager(GroupProvider groupProvider) {
this.groupProvider = groupProvider;
}
@Override
public GroupProvider findPermissionProvider() {
return groupProvider;
}
@Override
public GroupProvider permissionOnlyProvider() {
return groupProvider;
}
}
@@ -5,7 +5,6 @@ import org.junit.Test;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.junit.Assert.assertThat;
public class MessageBuilderTest {
@Test
public void testFailIfEmpty() {