TF-EssentialsX/Essentials/test/com/earth2me/essentials/ToggleTest.java
DoNotSpamPls 7325113a8c Remove outdated permission plugin handlers, minor test fixes (#2367) @DoNotSpamPls
* Remove outdated permission plugin handlers, minor test fixes

* Re-add PermissionEX handler

* Use PaperLib to load chunks async whenever possible

* Revert "Use PaperLib to load chunks async whenever possible"

This reverts commit db4df6f3cfa82d15d889933711674d02f5d95440.
2019-01-27 12:14:16 +00:00

173 lines
5.9 KiB
Java

package com.earth2me.essentials;
import com.earth2me.essentials.commands.IEssentialsCommand;
import com.earth2me.essentials.commands.NoChargeException;
import junit.framework.TestCase;
import org.bukkit.World.Environment;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.InvalidDescriptionException;
import java.io.IOException;
public class ToggleTest extends TestCase {
private final OfflinePlayer base1;
private final Essentials ess;
private final FakeServer server;
public ToggleTest(String testName) {
super(testName);
server = new FakeServer();
server.createWorld("testWorld", Environment.NORMAL);
ess = new Essentials(server);
try {
ess.setupForTesting(server);
} catch (InvalidDescriptionException ex) {
fail("InvalidDescriptionException");
} catch (IOException ex) {
fail("IOException");
}
base1 = server.createPlayer("testPlayer1");
server.addPlayer(base1);
ess.getUser(base1);
}
private void runCommand(String command, User user, String[] args) throws Exception {
IEssentialsCommand cmd;
try {
cmd = (IEssentialsCommand) Essentials.class.getClassLoader().loadClass("com.earth2me.essentials.commands.Command" + command).newInstance();
cmd.setEssentials(ess);
cmd.run(server, user, command, null, args);
} catch (NoChargeException ignored) {}
}
private void runConsoleCommand(String command, String[] args) throws Exception {
IEssentialsCommand cmd;
CommandSender sender = server.getConsoleSender();
try {
cmd = (IEssentialsCommand) Essentials.class.getClassLoader().loadClass("com.earth2me.essentials.commands.Command" + command).newInstance();
cmd.setEssentials(ess);
cmd.run(server, new CommandSource(sender), command, null, args);
} catch (NoChargeException ignored) {}
}
public void testFlyToggle() throws Exception {
User user = ess.getUser(base1);
assertFalse(user.getBase().getAllowFlight());
runCommand("fly", user, new String[]{"on"});
assertTrue(user.getBase().getAllowFlight());
runCommand("fly", user, new String[]{"on"});
assertTrue(user.getBase().getAllowFlight());
runCommand("fly", user, new String[]{"off"});
assertFalse(user.getBase().getAllowFlight());
runCommand("fly", user, new String[]{"off"});
assertFalse(user.getBase().getAllowFlight());
runCommand("fly", user, new String[]{});
assertTrue(user.getBase().getAllowFlight());
runCommand("fly", user, new String[]{});
assertFalse(user.getBase().getAllowFlight());
}
public void testFlyDisOnToggle() throws Exception {
User user = ess.getUser(base1);
user.getBase().setAllowFlight(true);
user.getBase().setFlying(true);
assertTrue(user.getBase().isFlying());
runCommand("fly", user, new String[]{});
assertFalse(user.getBase().getAllowFlight());
assertFalse(user.getBase().isFlying());
}
public void testGodToggle() throws Exception {
User user = ess.getUser(base1);
assertFalse(user.isGodModeEnabled());
runCommand("god", user, new String[]{"on"});
assertTrue(user.isGodModeEnabled());
runCommand("god", user, new String[]{"on"});
assertTrue(user.isGodModeEnabled());
runCommand("god", user, new String[]{"off"});
assertFalse(user.isGodModeEnabled());
runCommand("god", user, new String[]{"off"});
assertFalse(user.isGodModeEnabled());
runCommand("god", user, new String[]{});
assertTrue(user.isGodModeEnabled());
runCommand("god", user, new String[]{});
assertFalse(user.isGodModeEnabled());
}
public void testConsoleToggle() throws Exception {
User user = ess.getUser(base1);
assertFalse(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName(), "on"});
assertTrue(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName(), "on"});
assertTrue(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName(), "off"});
assertFalse(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName(), "off"});
assertFalse(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName()});
assertTrue(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName()});
assertFalse(user.getBase().getAllowFlight());
}
public void testAliasesToggle() throws Exception {
User user = ess.getUser(base1);
assertFalse(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName(), "enable"});
assertTrue(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName(), "enable"});
assertTrue(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName(), "disable"});
assertFalse(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName(), "disable"});
assertFalse(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName(), "1"});
assertTrue(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName(), "1"});
assertTrue(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName(), "0"});
assertFalse(user.getBase().getAllowFlight());
runConsoleCommand("fly", new String[]{base1.getName(), "0"});
assertFalse(user.getBase().getAllowFlight());
}
}