From c6778b566d954bfcbb1ffb74146e3cf390f1d395 Mon Sep 17 00:00:00 2001 From: ljacqu Date: Sat, 4 Jun 2016 11:02:15 +0200 Subject: [PATCH] #727 Remove CommandService from ExecutableCommand interface (work in progress) - Inject CommandService like other classes instead of passing it as method parameter - Not solved: cyclic dependency CommandInitializer > ExecutableCommand > CommandService > CommandInitializer... --- .../xephi/authme/command/CommandHandler.java | 17 ++--- .../authme/command/ExecutableCommand.java | 9 ++- .../xephi/authme/command/PlayerCommand.java | 23 ++++--- .../command/executable/HelpCommand.java | 7 ++- .../executable/authme/AccountsCommand.java | 6 +- .../executable/authme/AuthMeCommand.java | 3 +- .../authme/ChangePasswordAdminCommand.java | 6 +- .../executable/authme/ConverterCommand.java | 5 +- .../executable/authme/FirstSpawnCommand.java | 3 +- .../executable/authme/ForceLoginCommand.java | 3 +- .../executable/authme/GetEmailCommand.java | 5 +- .../executable/authme/GetIpCommand.java | 3 +- .../executable/authme/LastLoginCommand.java | 5 +- .../authme/PurgeBannedPlayersCommand.java | 13 ++-- .../executable/authme/PurgeCommand.java | 3 +- .../authme/PurgeLastPositionCommand.java | 5 +- .../authme/RegisterAdminCommand.java | 6 +- .../executable/authme/ReloadCommand.java | 5 +- .../executable/authme/SetEmailCommand.java | 6 +- .../authme/SetFirstSpawnCommand.java | 3 +- .../executable/authme/SetSpawnCommand.java | 3 +- .../executable/authme/SpawnCommand.java | 3 +- .../authme/SwitchAntiBotCommand.java | 5 +- .../authme/UnregisterAdminCommand.java | 14 +++-- .../executable/authme/VersionCommand.java | 5 +- .../executable/captcha/CaptchaCommand.java | 5 +- .../changepassword/ChangePasswordCommand.java | 5 +- .../executable/email/AddEmailCommand.java | 5 +- .../executable/email/ChangeEmailCommand.java | 3 +- .../executable/email/EmailBaseCommand.java | 6 +- .../executable/email/RecoverEmailCommand.java | 16 ++--- .../executable/login/LoginCommand.java | 3 +- .../executable/logout/LogoutCommand.java | 3 +- .../executable/register/RegisterCommand.java | 5 +- .../unregister/UnregisterCommand.java | 5 +- .../authme/command/CommandHandlerTest.java | 41 ++++++------ .../authme/command/CommandUtilsTest.java | 7 +++ .../authme/command/PlayerCommandTest.java | 10 +-- .../authme/AccountsCommandTest.java | 14 ++--- .../executable/authme/AuthMeCommandTest.java | 4 +- .../ChangePasswordAdminCommandTest.java | 10 +-- .../authme/FirstSpawnCommandTest.java | 8 +-- .../authme/ForceLoginCommandTest.java | 14 ++--- .../authme/GetEmailCommandTest.java | 9 ++- .../executable/authme/GetIpCommandTest.java | 12 ++-- .../authme/LastLoginCommandTest.java | 17 ++--- .../authme/PurgeLastPositionCommandTest.java | 13 ++-- .../authme/RegisterAdminCommandTest.java | 10 +-- .../executable/authme/ReloadCommandTest.java | 12 ++-- .../authme/SetFirstSpawnCommandTest.java | 7 +-- .../authme/SetSpawnCommandTest.java | 7 +-- .../executable/authme/SpawnCommandTest.java | 7 +-- .../authme/SwitchAntiBotCommandTest.java | 8 +-- .../captcha/CaptchaCommandTest.java | 8 +-- .../ChangePasswordCommandTest.java | 8 +-- .../executable/email/AddEmailCommandTest.java | 6 +- .../email/ChangeEmailCommandTest.java | 8 +-- .../executable/login/LoginCommandTest.java | 7 +-- .../executable/logout/LogoutCommandTest.java | 13 +--- .../register/RegisterCommandTest.java | 62 +++++++++++-------- .../command/help/CommandSyntaxHelperTest.java | 7 +++ 61 files changed, 292 insertions(+), 259 deletions(-) diff --git a/src/main/java/fr/xephi/authme/command/CommandHandler.java b/src/main/java/fr/xephi/authme/command/CommandHandler.java index bca1ae047..8f493acbd 100644 --- a/src/main/java/fr/xephi/authme/command/CommandHandler.java +++ b/src/main/java/fr/xephi/authme/command/CommandHandler.java @@ -23,17 +23,12 @@ public class CommandHandler { */ private static final double SUGGEST_COMMAND_THRESHOLD = 0.75; - private final CommandService commandService; - private final PermissionsManager permissionsManager; - - /* - * Constructor. - */ @Inject - public CommandHandler(CommandService commandService, PermissionsManager permissionsManager) { - this.commandService = commandService; - this.permissionsManager = permissionsManager; - } + private CommandService commandService; + + @Inject + private PermissionsManager permissionsManager; + /** * Map a command that was invoked to the proper {@link CommandDescription} or return a useful error @@ -86,7 +81,7 @@ public class CommandHandler { private void executeCommand(CommandSender sender, FoundCommandResult result) { ExecutableCommand executableCommand = result.getCommandDescription().getExecutableCommand(); List arguments = result.getArguments(); - executableCommand.executeCommand(sender, arguments, commandService); + executableCommand.executeCommand(sender, arguments); } /** diff --git a/src/main/java/fr/xephi/authme/command/ExecutableCommand.java b/src/main/java/fr/xephi/authme/command/ExecutableCommand.java index 9567089f5..ceda12ef3 100644 --- a/src/main/java/fr/xephi/authme/command/ExecutableCommand.java +++ b/src/main/java/fr/xephi/authme/command/ExecutableCommand.java @@ -10,12 +10,11 @@ import java.util.List; public interface ExecutableCommand { /** - * Execute the command with the given arguments. + * Executes the command with the given arguments. * - * @param sender The command sender. - * @param arguments The arguments. - * @param commandService The command service. + * @param sender the command sender (initiator of the command) + * @param arguments the arguments */ - void executeCommand(CommandSender sender, List arguments, CommandService commandService); + void executeCommand(CommandSender sender, List arguments); } diff --git a/src/main/java/fr/xephi/authme/command/PlayerCommand.java b/src/main/java/fr/xephi/authme/command/PlayerCommand.java index 2d7aca0b9..8ce6e05fc 100644 --- a/src/main/java/fr/xephi/authme/command/PlayerCommand.java +++ b/src/main/java/fr/xephi/authme/command/PlayerCommand.java @@ -1,19 +1,19 @@ package fr.xephi.authme.command; -import java.util.List; - import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import java.util.List; + /** * Common base type for player-only commands, handling the verification that the command sender is indeed a player. */ public abstract class PlayerCommand implements ExecutableCommand { @Override - public void executeCommand(CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(CommandSender sender, List arguments) { if (sender instanceof Player) { - runCommand((Player) sender, arguments, commandService); + runCommand((Player) sender, arguments); } else { String alternative = getAlternativeCommand(); if (alternative != null) { @@ -25,19 +25,18 @@ public abstract class PlayerCommand implements ExecutableCommand { } /** - * Run the command with the given player and arguments. + * Runs the command with the given player and arguments. * - * @param player The player who initiated the command - * @param arguments The arguments supplied with the command - * @param commandService The command service + * @param player the player who initiated the command + * @param arguments the arguments supplied with the command */ - protected abstract void runCommand(Player player, List arguments, CommandService commandService); + protected abstract void runCommand(Player player, List arguments); /** - * Return an alternative command (textual representation) that is not restricted to players only. - * Example: {@code "authme register "} + * Returns an alternative command (textual representation) that is not restricted to players only. + * Example: {@code "/authme register "} * - * @return Alternative command not only for players, or null if not applicable + * @return Alternative command not restricted to players, or null if not applicable */ protected String getAlternativeCommand() { return null; diff --git a/src/main/java/fr/xephi/authme/command/executable/HelpCommand.java b/src/main/java/fr/xephi/authme/command/executable/HelpCommand.java index 89256535c..e912fb12d 100644 --- a/src/main/java/fr/xephi/authme/command/executable/HelpCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/HelpCommand.java @@ -9,6 +9,7 @@ import fr.xephi.authme.command.help.HelpProvider; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; +import javax.inject.Inject; import java.util.List; import static fr.xephi.authme.command.FoundResultStatus.MISSING_BASE_COMMAND; @@ -16,10 +17,14 @@ import static fr.xephi.authme.command.FoundResultStatus.UNKNOWN_LABEL; public class HelpCommand implements ExecutableCommand { + @Inject + private CommandService commandService; + + // Convention: arguments is not the actual invoked arguments but the command that was invoked, // e.g. "/authme help register" would typically be arguments = [register], but here we pass [authme, register] @Override - public void executeCommand(CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(CommandSender sender, List arguments) { FoundCommandResult result = commandService.mapPartsToCommand(sender, arguments); FoundResultStatus resultStatus = result.getResultStatus(); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/AccountsCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/AccountsCommand.java index b2cd359ed..3b446a7fb 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/AccountsCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/AccountsCommand.java @@ -23,9 +23,11 @@ public class AccountsCommand implements ExecutableCommand { @Inject private BukkitService bukkitService; + @Inject + private CommandService commandService; + @Override - public void executeCommand(final CommandSender sender, List arguments, - final CommandService commandService) { + public void executeCommand(final CommandSender sender, List arguments) { final String playerName = arguments.isEmpty() ? sender.getName() : arguments.get(0); // Assumption: a player name cannot contain '.' diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/AuthMeCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/AuthMeCommand.java index 2c0ef6019..2648177eb 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/AuthMeCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/AuthMeCommand.java @@ -1,7 +1,6 @@ package fr.xephi.authme.command.executable.authme; import fr.xephi.authme.AuthMe; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.ExecutableCommand; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -14,7 +13,7 @@ import java.util.List; public class AuthMeCommand implements ExecutableCommand { @Override - public void executeCommand(CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(CommandSender sender, List arguments) { sender.sendMessage(ChatColor.GREEN + "This server is running " + AuthMe.getPluginName() + " v" + AuthMe.getPluginVersion() + " b" + AuthMe.getPluginBuildNumber()+ "! " + ChatColor.RED + "<3"); sender.sendMessage(ChatColor.YELLOW + "Use the command " + ChatColor.GOLD + "/authme help" + ChatColor.YELLOW diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/ChangePasswordAdminCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/ChangePasswordAdminCommand.java index 5f35b7df2..729a4b4e6 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/ChangePasswordAdminCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/ChangePasswordAdminCommand.java @@ -37,9 +37,11 @@ public class ChangePasswordAdminCommand implements ExecutableCommand { @Inject private ValidationService validationService; + @Inject + private CommandService commandService; + @Override - public void executeCommand(final CommandSender sender, List arguments, - final CommandService commandService) { + public void executeCommand(final CommandSender sender, List arguments) { // Get the player and password final String playerName = arguments.get(0); final String playerPass = arguments.get(1); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/ConverterCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/ConverterCommand.java index 5c4800edf..4c2865b5f 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/ConverterCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/ConverterCommand.java @@ -22,6 +22,9 @@ import java.util.List; */ public class ConverterCommand implements ExecutableCommand { + @Inject + private CommandService commandService; + @Inject private BukkitService bukkitService; @@ -29,7 +32,7 @@ public class ConverterCommand implements ExecutableCommand { private AuthMeServiceInitializer initializer; @Override - public void executeCommand(final CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(final CommandSender sender, List arguments) { // Get the conversion job String job = arguments.get(0); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/FirstSpawnCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/FirstSpawnCommand.java index 52793e10b..acfc59be0 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/FirstSpawnCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/FirstSpawnCommand.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.PlayerCommand; import fr.xephi.authme.settings.SpawnLoader; import org.bukkit.entity.Player; @@ -17,7 +16,7 @@ public class FirstSpawnCommand extends PlayerCommand { private SpawnLoader spawnLoader; @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { if (spawnLoader.getFirstSpawn() == null) { player.sendMessage("[AuthMe] First spawn has failed, please try to define the first spawn"); } else { diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/ForceLoginCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/ForceLoginCommand.java index e9f8f7776..706e313e2 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/ForceLoginCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/ForceLoginCommand.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.ExecutableCommand; import fr.xephi.authme.permission.PermissionsManager; import fr.xephi.authme.process.Management; @@ -28,7 +27,7 @@ public class ForceLoginCommand implements ExecutableCommand { private BukkitService bukkitService; @Override - public void executeCommand(CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(CommandSender sender, List arguments) { // Get the player query String playerName = arguments.isEmpty() ? sender.getName() : arguments.get(0); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/GetEmailCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/GetEmailCommand.java index ede9a424c..07ee57d3a 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/GetEmailCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/GetEmailCommand.java @@ -18,8 +18,11 @@ public class GetEmailCommand implements ExecutableCommand { @Inject private DataSource dataSource; + @Inject + private CommandService commandService; + @Override - public void executeCommand(CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(CommandSender sender, List arguments) { String playerName = arguments.isEmpty() ? sender.getName() : arguments.get(0); PlayerAuth auth = dataSource.getAuth(playerName); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/GetIpCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/GetIpCommand.java index 749a88bf2..773f01b40 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/GetIpCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/GetIpCommand.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.ExecutableCommand; import fr.xephi.authme.util.BukkitService; import org.bukkit.command.CommandSender; @@ -15,7 +14,7 @@ public class GetIpCommand implements ExecutableCommand { private BukkitService bukkitService; @Override - public void executeCommand(CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(CommandSender sender, List arguments) { // Get the player query String playerName = arguments.get(0); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/LastLoginCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/LastLoginCommand.java index 4f0135a2d..376499fba 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/LastLoginCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/LastLoginCommand.java @@ -19,8 +19,11 @@ public class LastLoginCommand implements ExecutableCommand { @Inject private DataSource dataSource; + @Inject + private CommandService commandService; + @Override - public void executeCommand(CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(CommandSender sender, List arguments) { // Get the player String playerName = (arguments.size() >= 1) ? arguments.get(0) : sender.getName(); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/PurgeBannedPlayersCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/PurgeBannedPlayersCommand.java index 92a4b50c0..c80a790da 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/PurgeBannedPlayersCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/PurgeBannedPlayersCommand.java @@ -1,22 +1,19 @@ package fr.xephi.authme.command.executable.authme; import fr.xephi.authme.AuthMe; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.ExecutableCommand; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.task.PurgeTask; import fr.xephi.authme.util.BukkitService; +import org.bukkit.ChatColor; +import org.bukkit.OfflinePlayer; +import org.bukkit.command.CommandSender; +import javax.inject.Inject; import java.util.HashSet; import java.util.List; import java.util.Set; -import javax.inject.Inject; -import org.bukkit.ChatColor; - -import org.bukkit.OfflinePlayer; -import org.bukkit.command.CommandSender; - /** * Command for purging data of banned players. Depending on the settings * it purges (deletes) data from third-party plugins as well. @@ -33,7 +30,7 @@ public class PurgeBannedPlayersCommand implements ExecutableCommand { private BukkitService bukkitService; @Override - public void executeCommand(CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(CommandSender sender, List arguments) { // Get the list of banned players Set namedBanned = new HashSet<>(); Set bannedPlayers = bukkitService.getBannedPlayers(); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/PurgeCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/PurgeCommand.java index db91aad65..73e8e7c06 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/PurgeCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/PurgeCommand.java @@ -1,7 +1,6 @@ package fr.xephi.authme.command.executable.authme; import fr.xephi.authme.AuthMe; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.ExecutableCommand; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.task.PurgeTask; @@ -28,7 +27,7 @@ public class PurgeCommand implements ExecutableCommand { private AuthMe plugin; @Override - public void executeCommand(CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(CommandSender sender, List arguments) { // Get the days parameter String daysStr = arguments.get(0); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommand.java index 7c88df86a..ca6a02003 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommand.java @@ -18,8 +18,11 @@ public class PurgeLastPositionCommand implements ExecutableCommand { @Inject private DataSource dataSource; + @Inject + private CommandService commandService; + @Override - public void executeCommand(final CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(final CommandSender sender, List arguments) { String playerName = arguments.isEmpty() ? sender.getName() : arguments.get(0); if ("*".equals(playerName)) { diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/RegisterAdminCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/RegisterAdminCommand.java index 292180030..a4931e963 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/RegisterAdminCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/RegisterAdminCommand.java @@ -25,6 +25,9 @@ public class RegisterAdminCommand implements ExecutableCommand { @Inject private PasswordSecurity passwordSecurity; + @Inject + private CommandService commandService; + @Inject private DataSource dataSource; @@ -35,8 +38,7 @@ public class RegisterAdminCommand implements ExecutableCommand { private ValidationService validationService; @Override - public void executeCommand(final CommandSender sender, List arguments, - final CommandService commandService) { + public void executeCommand(final CommandSender sender, List arguments) { // Get the player name and password final String playerName = arguments.get(0); final String playerPass = arguments.get(1); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/ReloadCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/ReloadCommand.java index 1698e316d..73534902d 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/ReloadCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/ReloadCommand.java @@ -31,8 +31,11 @@ public class ReloadCommand implements ExecutableCommand { @Inject private DataSource dataSource; + @Inject + private CommandService commandService; + @Override - public void executeCommand(CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(CommandSender sender, List arguments) { try { settings.reload(); ConsoleLogger.setLoggingOptions(settings); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/SetEmailCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/SetEmailCommand.java index 35c0fa0d3..76ef49596 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/SetEmailCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/SetEmailCommand.java @@ -20,6 +20,9 @@ public class SetEmailCommand implements ExecutableCommand { @Inject private DataSource dataSource; + @Inject + private CommandService commandService; + @Inject private PlayerCache playerCache; @@ -27,8 +30,7 @@ public class SetEmailCommand implements ExecutableCommand { private BukkitService bukkitService; @Override - public void executeCommand(final CommandSender sender, List arguments, - final CommandService commandService) { + public void executeCommand(final CommandSender sender, List arguments) { // Get the player name and email address final String playerName = arguments.get(0); final String playerEmail = arguments.get(1); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/SetFirstSpawnCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/SetFirstSpawnCommand.java index 5d4b6995f..899a1103f 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/SetFirstSpawnCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/SetFirstSpawnCommand.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.PlayerCommand; import fr.xephi.authme.settings.SpawnLoader; import org.bukkit.entity.Player; @@ -14,7 +13,7 @@ public class SetFirstSpawnCommand extends PlayerCommand { private SpawnLoader spawnLoader; @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { if (spawnLoader.setFirstSpawn(player.getLocation())) { player.sendMessage("[AuthMe] Correctly defined new first spawn point"); } else { diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/SetSpawnCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/SetSpawnCommand.java index 18cdf13bd..fc9a67b9e 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/SetSpawnCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/SetSpawnCommand.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.PlayerCommand; import fr.xephi.authme.settings.SpawnLoader; import org.bukkit.entity.Player; @@ -14,7 +13,7 @@ public class SetSpawnCommand extends PlayerCommand { private SpawnLoader spawnLoader; @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { if (spawnLoader.setSpawn(player.getLocation())) { player.sendMessage("[AuthMe] Correctly defined new spawn point"); } else { diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/SpawnCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/SpawnCommand.java index c7f584f7b..3c011e6da 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/SpawnCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/SpawnCommand.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.PlayerCommand; import fr.xephi.authme.settings.SpawnLoader; import org.bukkit.entity.Player; @@ -14,7 +13,7 @@ public class SpawnCommand extends PlayerCommand { private SpawnLoader spawnLoader; @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { if (spawnLoader.getSpawn() == null) { player.sendMessage("[AuthMe] Spawn has failed, please try to define the spawn"); } else { diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/SwitchAntiBotCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/SwitchAntiBotCommand.java index e996e6f08..37a709cf9 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/SwitchAntiBotCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/SwitchAntiBotCommand.java @@ -20,8 +20,11 @@ public class SwitchAntiBotCommand implements ExecutableCommand { @Inject private AntiBot antiBot; + @Inject + private CommandService commandService; + @Override - public void executeCommand(final CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(final CommandSender sender, List arguments) { if (arguments.isEmpty()) { sender.sendMessage("[AuthMe] AntiBot status: " + antiBot.getAntiBotStatus().name()); return; diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/UnregisterAdminCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/UnregisterAdminCommand.java index d8fe66ad7..d81b9bafc 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/UnregisterAdminCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/UnregisterAdminCommand.java @@ -33,6 +33,9 @@ public class UnregisterAdminCommand implements ExecutableCommand { @Inject private DataSource dataSource; + @Inject + private CommandService commandService; + @Inject private PlayerCache playerCache; @@ -42,8 +45,11 @@ public class UnregisterAdminCommand implements ExecutableCommand { @Inject private BukkitService bukkitService; + @Inject + private LimboCache limboCache; + @Override - public void executeCommand(final CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(final CommandSender sender, List arguments) { // Get the player name String playerName = arguments.get(0); String playerNameLowerCase = playerName.toLowerCase(); @@ -88,14 +94,14 @@ public class UnregisterAdminCommand implements ExecutableCommand { final String playerNameLowerCase = target.getName().toLowerCase(); Utils.teleportToSpawn(target); - LimboCache.getInstance().addLimboPlayer(target); + limboCache.addLimboPlayer(target); int timeOut = service.getProperty(RestrictionSettings.TIMEOUT) * TICKS_PER_SECOND; int interval = service.getProperty(RegistrationSettings.MESSAGE_INTERVAL); if (timeOut != 0) { BukkitTask id = bukkitService.runTaskLater(new TimeoutTask(authMe, playerNameLowerCase, target), timeOut); - LimboCache.getInstance().getLimboPlayer(playerNameLowerCase).setTimeoutTask(id); + limboCache.getLimboPlayer(playerNameLowerCase).setTimeoutTask(id); } - LimboCache.getInstance().getLimboPlayer(playerNameLowerCase).setMessageTask( + limboCache.getLimboPlayer(playerNameLowerCase).setMessageTask( bukkitService.runTask(new MessageTask(bukkitService, authMe.getMessages(), playerNameLowerCase, MessageKey.REGISTER_MESSAGE, interval))); diff --git a/src/main/java/fr/xephi/authme/command/executable/authme/VersionCommand.java b/src/main/java/fr/xephi/authme/command/executable/authme/VersionCommand.java index 825e05285..a7e6575ef 100644 --- a/src/main/java/fr/xephi/authme/command/executable/authme/VersionCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/authme/VersionCommand.java @@ -19,8 +19,11 @@ public class VersionCommand implements ExecutableCommand { @Inject private BukkitService bukkitService; + @Inject + private CommandService commandService; + @Override - public void executeCommand(CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(CommandSender sender, List arguments) { // Show some version info sender.sendMessage(ChatColor.GOLD + "==========[ " + commandService.getProperty(HELP_HEADER) + " ABOUT ]=========="); diff --git a/src/main/java/fr/xephi/authme/command/executable/captcha/CaptchaCommand.java b/src/main/java/fr/xephi/authme/command/executable/captcha/CaptchaCommand.java index 410a9d8f3..0cae9aa09 100644 --- a/src/main/java/fr/xephi/authme/command/executable/captcha/CaptchaCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/captcha/CaptchaCommand.java @@ -18,8 +18,11 @@ public class CaptchaCommand extends PlayerCommand { @Inject private CaptchaManager captchaManager; + @Inject + private CommandService commandService; + @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { final String playerName = player.getName().toLowerCase(); if (playerCache.isAuthenticated(playerName)) { diff --git a/src/main/java/fr/xephi/authme/command/executable/changepassword/ChangePasswordCommand.java b/src/main/java/fr/xephi/authme/command/executable/changepassword/ChangePasswordCommand.java index 8ed7b6374..6f05d3647 100644 --- a/src/main/java/fr/xephi/authme/command/executable/changepassword/ChangePasswordCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/changepassword/ChangePasswordCommand.java @@ -20,6 +20,9 @@ import java.util.List; */ public class ChangePasswordCommand extends PlayerCommand { + @Inject + private CommandService commandService; + @Inject private PlayerCache playerCache; @@ -34,7 +37,7 @@ public class ChangePasswordCommand extends PlayerCommand { private PasswordSecurity passwordSecurity; @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { String oldPassword = arguments.get(0); String newPassword = arguments.get(1); diff --git a/src/main/java/fr/xephi/authme/command/executable/email/AddEmailCommand.java b/src/main/java/fr/xephi/authme/command/executable/email/AddEmailCommand.java index 6d9b384d4..842d866d4 100644 --- a/src/main/java/fr/xephi/authme/command/executable/email/AddEmailCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/email/AddEmailCommand.java @@ -17,8 +17,11 @@ public class AddEmailCommand extends PlayerCommand { @Inject private Management management; + @Inject + private CommandService commandService; + @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { String email = arguments.get(0); String emailConfirmation = arguments.get(1); diff --git a/src/main/java/fr/xephi/authme/command/executable/email/ChangeEmailCommand.java b/src/main/java/fr/xephi/authme/command/executable/email/ChangeEmailCommand.java index 333f795ef..1f9051e38 100644 --- a/src/main/java/fr/xephi/authme/command/executable/email/ChangeEmailCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/email/ChangeEmailCommand.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.email; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.PlayerCommand; import fr.xephi.authme.process.Management; import org.bukkit.entity.Player; @@ -17,7 +16,7 @@ public class ChangeEmailCommand extends PlayerCommand { private Management management; @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { String playerMailOld = arguments.get(0); String playerMailNew = arguments.get(1); diff --git a/src/main/java/fr/xephi/authme/command/executable/email/EmailBaseCommand.java b/src/main/java/fr/xephi/authme/command/executable/email/EmailBaseCommand.java index 3a79843e8..d75973f0d 100644 --- a/src/main/java/fr/xephi/authme/command/executable/email/EmailBaseCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/email/EmailBaseCommand.java @@ -6,6 +6,7 @@ import fr.xephi.authme.command.FoundCommandResult; import fr.xephi.authme.command.help.HelpProvider; import org.bukkit.command.CommandSender; +import javax.inject.Inject; import java.util.Collections; import java.util.List; @@ -14,8 +15,11 @@ import java.util.List; */ public class EmailBaseCommand implements ExecutableCommand { + @Inject + private CommandService commandService; + @Override - public void executeCommand(CommandSender sender, List arguments, CommandService commandService) { + public void executeCommand(CommandSender sender, List arguments) { FoundCommandResult result = commandService.mapPartsToCommand(sender, Collections.singletonList("email")); commandService.outputHelp(sender, result, HelpProvider.SHOW_CHILDREN); } diff --git a/src/main/java/fr/xephi/authme/command/executable/email/RecoverEmailCommand.java b/src/main/java/fr/xephi/authme/command/executable/email/RecoverEmailCommand.java index cb9a4163b..fac517ea9 100644 --- a/src/main/java/fr/xephi/authme/command/executable/email/RecoverEmailCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/email/RecoverEmailCommand.java @@ -1,11 +1,5 @@ package fr.xephi.authme.command.executable.email; -import java.util.List; - -import javax.inject.Inject; - -import org.bukkit.entity.Player; - import fr.xephi.authme.AuthMe; import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.cache.auth.PlayerAuth; @@ -19,12 +13,19 @@ import fr.xephi.authme.security.RandomString; import fr.xephi.authme.security.crypts.HashedPassword; import fr.xephi.authme.settings.properties.EmailSettings; import fr.xephi.authme.util.StringUtils; +import org.bukkit.entity.Player; + +import javax.inject.Inject; +import java.util.List; public class RecoverEmailCommand extends PlayerCommand { @Inject private PasswordSecurity passwordSecurity; + @Inject + private CommandService commandService; + @Inject private DataSource dataSource; @@ -32,10 +33,11 @@ public class RecoverEmailCommand extends PlayerCommand { private PlayerCache playerCache; @Inject + // TODO #655: Remove injected AuthMe instance once Authme#mail is encapsulated private AuthMe plugin; @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { final String playerMail = arguments.get(0); final String playerName = player.getName(); diff --git a/src/main/java/fr/xephi/authme/command/executable/login/LoginCommand.java b/src/main/java/fr/xephi/authme/command/executable/login/LoginCommand.java index d10ef91ac..8b4054ac9 100644 --- a/src/main/java/fr/xephi/authme/command/executable/login/LoginCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/login/LoginCommand.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.login; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.PlayerCommand; import fr.xephi.authme.process.Management; import org.bukkit.entity.Player; @@ -17,7 +16,7 @@ public class LoginCommand extends PlayerCommand { private Management management; @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { final String password = arguments.get(0); management.performLogin(player, password, false); } diff --git a/src/main/java/fr/xephi/authme/command/executable/logout/LogoutCommand.java b/src/main/java/fr/xephi/authme/command/executable/logout/LogoutCommand.java index 2236f125d..83b17882a 100644 --- a/src/main/java/fr/xephi/authme/command/executable/logout/LogoutCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/logout/LogoutCommand.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.logout; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.PlayerCommand; import fr.xephi.authme.process.Management; import org.bukkit.entity.Player; @@ -17,7 +16,7 @@ public class LogoutCommand extends PlayerCommand { private Management management; @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { management.performLogout(player); } } diff --git a/src/main/java/fr/xephi/authme/command/executable/register/RegisterCommand.java b/src/main/java/fr/xephi/authme/command/executable/register/RegisterCommand.java index 54f054e5d..f9a6d1655 100644 --- a/src/main/java/fr/xephi/authme/command/executable/register/RegisterCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/register/RegisterCommand.java @@ -24,8 +24,11 @@ public class RegisterCommand extends PlayerCommand { @Inject private Management management; + @Inject + private CommandService commandService; + @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { if (commandService.getProperty(SecuritySettings.PASSWORD_HASH) == HashAlgorithm.TWO_FACTOR) { //for two factor auth we don't need to check the usage management.performRegister(player, "", "", true); diff --git a/src/main/java/fr/xephi/authme/command/executable/unregister/UnregisterCommand.java b/src/main/java/fr/xephi/authme/command/executable/unregister/UnregisterCommand.java index 2d0a5bde6..e289480e0 100644 --- a/src/main/java/fr/xephi/authme/command/executable/unregister/UnregisterCommand.java +++ b/src/main/java/fr/xephi/authme/command/executable/unregister/UnregisterCommand.java @@ -15,8 +15,11 @@ public class UnregisterCommand extends PlayerCommand { @Inject private Management management; + @Inject + private CommandService commandService; + @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { String playerPass = arguments.get(0); final String playerNameLowerCase = player.getName().toLowerCase(); diff --git a/src/test/java/fr/xephi/authme/command/CommandHandlerTest.java b/src/test/java/fr/xephi/authme/command/CommandHandlerTest.java index 3e97627e6..d604a5b6d 100644 --- a/src/test/java/fr/xephi/authme/command/CommandHandlerTest.java +++ b/src/test/java/fr/xephi/authme/command/CommandHandlerTest.java @@ -47,7 +47,10 @@ public class CommandHandlerTest { private CommandHandler handler; @Mock - private CommandService serviceMock; + private CommandService commandService; + + @Mock + private CommandMapper commandMapper; @Mock private PermissionsManager permissionsManager; @@ -66,17 +69,17 @@ public class CommandHandlerTest { ExecutableCommand executableCommand = mock(ExecutableCommand.class); CommandDescription command = mock(CommandDescription.class); given(command.getExecutableCommand()).willReturn(executableCommand); - given(serviceMock.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))) + given(commandService.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))) .willReturn(new FoundCommandResult(command, asList("Authme", "Login"), asList("myPass"), 0.0, SUCCESS)); // when handler.processCommand(sender, bukkitLabel, bukkitArgs); // then - verify(serviceMock).mapPartsToCommand(eq(sender), captor.capture()); + verify(commandService).mapPartsToCommand(eq(sender), captor.capture()); assertThat(captor.getValue(), contains("Authme", "Login", "myPass")); - verify(executableCommand).executeCommand(eq(sender), captor.capture(), any(CommandService.class)); + verify(executableCommand).executeCommand(eq(sender), captor.capture()); assertThat(captor.getValue(), contains("myPass")); // Ensure that no error message was issued to the command sender @@ -90,14 +93,14 @@ public class CommandHandlerTest { String[] bukkitArgs = {"testPlayer"}; CommandSender sender = mock(CommandSender.class); CommandDescription command = mock(CommandDescription.class); - given(serviceMock.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))) + given(commandService.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))) .willReturn(new FoundCommandResult(command, asList("unreg"), asList("testPlayer"), 0.0, NO_PERMISSION)); // when handler.processCommand(sender, bukkitLabel, bukkitArgs); // then - verify(serviceMock).mapPartsToCommand(eq(sender), captor.capture()); + verify(commandService).mapPartsToCommand(eq(sender), captor.capture()); assertThat(captor.getValue(), contains("unreg", "testPlayer")); verify(command, never()).getExecutableCommand(); verify(sender).sendMessage(argThat(containsString("don't have permission"))); @@ -110,7 +113,7 @@ public class CommandHandlerTest { String[] bukkitArgs = {"testPlayer"}; CommandSender sender = mock(CommandSender.class); CommandDescription command = mock(CommandDescription.class); - given(serviceMock.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))).willReturn( + given(commandService.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))).willReturn( new FoundCommandResult(command, asList("unreg"), asList("testPlayer"), 0.0, INCORRECT_ARGUMENTS)); given(permissionsManager.hasPermission(sender, command.getPermission())).willReturn(true); @@ -118,7 +121,7 @@ public class CommandHandlerTest { handler.processCommand(sender, bukkitLabel, bukkitArgs); // then - verify(serviceMock).mapPartsToCommand(eq(sender), captor.capture()); + verify(commandService).mapPartsToCommand(eq(sender), captor.capture()); assertThat(captor.getValue(), contains("unreg", "testPlayer")); verify(command, never()).getExecutableCommand(); @@ -134,7 +137,7 @@ public class CommandHandlerTest { String[] bukkitArgs = {"testPlayer"}; CommandSender sender = mock(CommandSender.class); CommandDescription command = mock(CommandDescription.class); - given(serviceMock.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))).willReturn( + given(commandService.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))).willReturn( new FoundCommandResult(command, asList("unreg"), asList("testPlayer"), 0.0, INCORRECT_ARGUMENTS)); given(permissionsManager.hasPermission(sender, command.getPermission())).willReturn(false); @@ -142,7 +145,7 @@ public class CommandHandlerTest { handler.processCommand(sender, bukkitLabel, bukkitArgs); // then - verify(serviceMock).mapPartsToCommand(eq(sender), captor.capture()); + verify(commandService).mapPartsToCommand(eq(sender), captor.capture()); assertThat(captor.getValue(), contains("unreg", "testPlayer")); verify(command, never()).getExecutableCommand(); @@ -158,14 +161,14 @@ public class CommandHandlerTest { String[] bukkitArgs = {"testPlayer"}; CommandSender sender = mock(CommandSender.class); CommandDescription command = mock(CommandDescription.class); - given(serviceMock.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))).willReturn( + given(commandService.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))).willReturn( new FoundCommandResult(command, asList("unreg"), asList("testPlayer"), 0.0, MISSING_BASE_COMMAND)); // when handler.processCommand(sender, bukkitLabel, bukkitArgs); // then - verify(serviceMock).mapPartsToCommand(eq(sender), captor.capture()); + verify(commandService).mapPartsToCommand(eq(sender), captor.capture()); assertThat(captor.getValue(), contains("unreg", "testPlayer")); verify(command, never()).getExecutableCommand(); verify(sender).sendMessage(argThat(containsString("Failed to parse"))); @@ -179,14 +182,14 @@ public class CommandHandlerTest { CommandSender sender = mock(CommandSender.class); CommandDescription command = mock(CommandDescription.class); given(command.getLabels()).willReturn(Collections.singletonList("test_cmd")); - given(serviceMock.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))).willReturn( + given(commandService.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))).willReturn( new FoundCommandResult(command, asList("unreg"), asList("testPlayer"), 0.01, UNKNOWN_LABEL)); // when handler.processCommand(sender, bukkitLabel, bukkitArgs); // then - verify(serviceMock).mapPartsToCommand(eq(sender), captor.capture()); + verify(commandService).mapPartsToCommand(eq(sender), captor.capture()); assertThat(captor.getValue(), contains("unreg", "testPlayer")); verify(command, never()).getExecutableCommand(); @@ -207,14 +210,14 @@ public class CommandHandlerTest { CommandSender sender = mock(CommandSender.class); CommandDescription command = mock(CommandDescription.class); given(command.getLabels()).willReturn(Collections.singletonList("test_cmd")); - given(serviceMock.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))).willReturn( + given(commandService.mapPartsToCommand(any(CommandSender.class), anyListOf(String.class))).willReturn( new FoundCommandResult(command, asList("unreg"), asList("testPlayer"), 1.0, UNKNOWN_LABEL)); // when handler.processCommand(sender, bukkitLabel, bukkitArgs); // then - verify(serviceMock).mapPartsToCommand(eq(sender), captor.capture()); + verify(commandService).mapPartsToCommand(eq(sender), captor.capture()); assertThat(captor.getValue(), contains("unreg", "testPlayer")); verify(command, never()).getExecutableCommand(); @@ -235,17 +238,17 @@ public class CommandHandlerTest { ExecutableCommand executableCommand = mock(ExecutableCommand.class); CommandDescription command = mock(CommandDescription.class); given(command.getExecutableCommand()).willReturn(executableCommand); - given(serviceMock.mapPartsToCommand(eq(sender), anyListOf(String.class))) + given(commandService.mapPartsToCommand(eq(sender), anyListOf(String.class))) .willReturn(new FoundCommandResult(command, asList("AuthMe", "LOGIN"), asList("testArg"), 0.0, SUCCESS)); // when handler.processCommand(sender, bukkitLabel, bukkitArgs); // then - verify(serviceMock).mapPartsToCommand(eq(sender), captor.capture()); + verify(commandService).mapPartsToCommand(eq(sender), captor.capture()); assertThat(captor.getValue(), contains("AuthMe", "LOGIN", "testArg")); - verify(command.getExecutableCommand()).executeCommand(eq(sender), captor.capture(), eq(serviceMock)); + verify(command.getExecutableCommand()).executeCommand(eq(sender), captor.capture()); assertThat(captor.getValue(), contains("testArg")); verify(sender, never()).sendMessage(anyString()); diff --git a/src/test/java/fr/xephi/authme/command/CommandUtilsTest.java b/src/test/java/fr/xephi/authme/command/CommandUtilsTest.java index e3970fa6b..a290967c0 100644 --- a/src/test/java/fr/xephi/authme/command/CommandUtilsTest.java +++ b/src/test/java/fr/xephi/authme/command/CommandUtilsTest.java @@ -1,5 +1,6 @@ package fr.xephi.authme.command; +import fr.xephi.authme.TestHelper; import org.junit.Test; import java.util.Arrays; @@ -113,6 +114,12 @@ public class CommandUtilsTest { checkArgumentCount(command, 1, 3); } + @Test + public void shouldHaveHiddenConstructor() { + // given / when / then + TestHelper.validateHasOnlyPrivateEmptyConstructor(CommandUtils.class); + } + private static void checkArgumentCount(CommandDescription command, int expectedMin, int expectedMax) { assertThat(CommandUtils.getMinNumberOfArguments(command), equalTo(expectedMin)); diff --git a/src/test/java/fr/xephi/authme/command/PlayerCommandTest.java b/src/test/java/fr/xephi/authme/command/PlayerCommandTest.java index a4c02b93a..f76412154 100644 --- a/src/test/java/fr/xephi/authme/command/PlayerCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/PlayerCommandTest.java @@ -27,7 +27,7 @@ public class PlayerCommandTest { PlayerCommandImpl command = new PlayerCommandImpl(); // when - command.executeCommand(sender, Collections.emptyList(), mock(CommandService.class)); + command.executeCommand(sender, Collections.emptyList()); // then verify(sender).sendMessage(argThat(containsString("only for players"))); @@ -42,7 +42,7 @@ public class PlayerCommandTest { PlayerCommandImpl command = new PlayerCommandImpl(); // when - command.executeCommand(player, arguments, service); + command.executeCommand(player, arguments); // then verify(player, times(1)).sendMessage("testarg2"); @@ -55,7 +55,7 @@ public class PlayerCommandTest { PlayerCommandWithAlt command = new PlayerCommandWithAlt(); // when - command.executeCommand(sender, Collections.emptyList(), mock(CommandService.class)); + command.executeCommand(sender, Collections.emptyList()); // then verify(sender, times(1)).sendMessage(argThat(containsString("use /authme test instead"))); @@ -64,14 +64,14 @@ public class PlayerCommandTest { private static class PlayerCommandImpl extends PlayerCommand { @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { player.sendMessage(arguments.get(1)); } } private static class PlayerCommandWithAlt extends PlayerCommand { @Override - public void runCommand(Player player, List arguments, CommandService commandService) { + public void runCommand(Player player, List arguments) { throw new IllegalStateException("Should not be called"); } @Override diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/AccountsCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/AccountsCommandTest.java index 404a2f582..df4648117 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/AccountsCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/AccountsCommandTest.java @@ -53,7 +53,7 @@ public class AccountsCommandTest { given(dataSource.getAllAuthsByIp("123.45.67.89")).willReturn(Arrays.asList("Toaster", "Pester")); // when - command.executeCommand(sender, arguments, service); + command.executeCommand(sender, arguments); runInnerRunnable(bukkitService); // then @@ -69,7 +69,7 @@ public class AccountsCommandTest { given(dataSource.getAuth("someuser")).willReturn(null); // when - command.executeCommand(sender, arguments, service); + command.executeCommand(sender, arguments); runInnerRunnable(bukkitService); // then @@ -85,7 +85,7 @@ public class AccountsCommandTest { given(dataSource.getAllAuthsByIp(anyString())).willReturn(Collections.emptyList()); // when - command.executeCommand(sender, arguments, service); + command.executeCommand(sender, arguments); runInnerRunnable(bukkitService); // then @@ -101,7 +101,7 @@ public class AccountsCommandTest { given(dataSource.getAllAuthsByIp("56.78.90.123")).willReturn(Collections.singletonList("SomeUser")); // when - command.executeCommand(sender, arguments, service); + command.executeCommand(sender, arguments); runInnerRunnable(bukkitService); // then @@ -119,7 +119,7 @@ public class AccountsCommandTest { given(dataSource.getAllAuthsByIp("123.45.67.89")).willReturn(Collections.emptyList()); // when - command.executeCommand(sender, arguments, service); + command.executeCommand(sender, arguments); runInnerRunnable(bukkitService); // then @@ -134,7 +134,7 @@ public class AccountsCommandTest { given(dataSource.getAllAuthsByIp("24.24.48.48")).willReturn(Collections.singletonList("SomeUser")); // when - command.executeCommand(sender, arguments, service); + command.executeCommand(sender, arguments); runInnerRunnable(bukkitService); // then @@ -149,7 +149,7 @@ public class AccountsCommandTest { given(dataSource.getAllAuthsByIp("98.76.41.122")).willReturn(Arrays.asList("Tester", "Lester", "Taster")); // when - command.executeCommand(sender, arguments, service); + command.executeCommand(sender, arguments); runInnerRunnable(bukkitService); // then diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/AuthMeCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/AuthMeCommandTest.java index c1c0c6e3a..f17f75fed 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/AuthMeCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/AuthMeCommandTest.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.ExecutableCommand; import org.bukkit.command.CommandSender; import org.junit.Test; @@ -24,10 +23,9 @@ public class AuthMeCommandTest { // given ExecutableCommand command = new AuthMeCommand(); CommandSender sender = mock(CommandSender.class); - CommandService service = mock(CommandService.class); // when - command.executeCommand(sender, Collections. emptyList(), service); + command.executeCommand(sender, Collections.emptyList()); // then ArgumentCaptor messagesCaptor = ArgumentCaptor.forClass(String.class); diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/ChangePasswordAdminCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/ChangePasswordAdminCommandTest.java index 5ab9ba0d8..e4aea7ed9 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/ChangePasswordAdminCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/ChangePasswordAdminCommandTest.java @@ -69,7 +69,7 @@ public class ChangePasswordAdminCommandTest { new ValidationResult(MessageKey.PASSWORD_IS_USERNAME_ERROR)); // when - command.executeCommand(sender, Arrays.asList("bobby", "Bobby"), service); + command.executeCommand(sender, Arrays.asList("bobby", "Bobby")); // then verify(validationService).validatePassword("Bobby", "bobby"); @@ -88,7 +88,7 @@ public class ChangePasswordAdminCommandTest { given(validationService.validatePassword(password, player)).willReturn(new ValidationResult()); // when - command.executeCommand(sender, Arrays.asList(player, password), service); + command.executeCommand(sender, Arrays.asList(player, password)); runInnerRunnable(bukkitService); // then @@ -113,7 +113,7 @@ public class ChangePasswordAdminCommandTest { given(validationService.validatePassword(password, player)).willReturn(new ValidationResult()); // when - command.executeCommand(sender, Arrays.asList(player, password), service); + command.executeCommand(sender, Arrays.asList(player, password)); runInnerRunnable(bukkitService); // then @@ -141,7 +141,7 @@ public class ChangePasswordAdminCommandTest { given(passwordSecurity.computeHash(password, player)).willReturn(hashedPassword); // when - command.executeCommand(sender, Arrays.asList(player, password), service); + command.executeCommand(sender, Arrays.asList(player, password)); runInnerRunnable(bukkitService); // then @@ -168,7 +168,7 @@ public class ChangePasswordAdminCommandTest { given(dataSource.updatePassword(auth)).willReturn(false); // when - command.executeCommand(sender, Arrays.asList(player, password), service); + command.executeCommand(sender, Arrays.asList(player, password)); runInnerRunnable(bukkitService); // then diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/FirstSpawnCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/FirstSpawnCommandTest.java index 42edaeb26..000c7922d 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/FirstSpawnCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/FirstSpawnCommandTest.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.settings.SpawnLoader; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -33,9 +32,6 @@ public class FirstSpawnCommandTest { @Mock private SpawnLoader spawnLoader; - @Mock - private CommandService service; - @Test public void shouldTeleportToFirstSpawn() { // given @@ -44,7 +40,7 @@ public class FirstSpawnCommandTest { Player player = mock(Player.class); // when - command.executeCommand(player, Collections.emptyList(), service); + command.executeCommand(player, Collections.emptyList()); // then verify(player).teleport(firstSpawn); @@ -58,7 +54,7 @@ public class FirstSpawnCommandTest { Player player = mock(Player.class); // when - command.executeCommand(player, Collections.emptyList(), service); + command.executeCommand(player, Collections.emptyList()); // then verify(player).sendMessage(argThat(containsString("spawn has failed"))); diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/ForceLoginCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/ForceLoginCommandTest.java index 8896be7cd..9f89fe5aa 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/ForceLoginCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/ForceLoginCommandTest.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.permission.PermissionsManager; import fr.xephi.authme.permission.PlayerPermission; import fr.xephi.authme.process.Management; @@ -43,9 +42,6 @@ public class ForceLoginCommandTest { @Mock private BukkitService bukkitService; - @Mock - private CommandService commandService; - @Test public void shouldRejectOfflinePlayer() { // given @@ -55,7 +51,7 @@ public class ForceLoginCommandTest { CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList(playerName), commandService); + command.executeCommand(sender, Collections.singletonList(playerName)); // then verify(bukkitService).getPlayerExact(playerName); @@ -71,7 +67,7 @@ public class ForceLoginCommandTest { CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList(playerName), commandService); + command.executeCommand(sender, Collections.singletonList(playerName)); // then verify(bukkitService).getPlayerExact(playerName); @@ -89,7 +85,7 @@ public class ForceLoginCommandTest { CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList(playerName), commandService); + command.executeCommand(sender, Collections.singletonList(playerName)); // then verify(bukkitService).getPlayerExact(playerName); @@ -107,7 +103,7 @@ public class ForceLoginCommandTest { CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList(playerName), commandService); + command.executeCommand(sender, Collections.singletonList(playerName)); // then verify(bukkitService).getPlayerExact(playerName); @@ -125,7 +121,7 @@ public class ForceLoginCommandTest { given(sender.getName()).willReturn(senderName); // when - command.executeCommand(sender, Collections.emptyList(), commandService); + command.executeCommand(sender, Collections.emptyList()); // then verify(bukkitService).getPlayerExact(senderName); diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/GetEmailCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/GetEmailCommandTest.java index f03ff4267..6afdc3295 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/GetEmailCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/GetEmailCommandTest.java @@ -31,9 +31,6 @@ public class GetEmailCommandTest { @Mock private DataSource dataSource; - @Mock - private CommandSender sender; - @Mock private CommandService service; @@ -42,9 +39,10 @@ public class GetEmailCommandTest { // given String user = "myTestUser"; given(dataSource.getAuth(user)).willReturn(null); + CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList(user), service); + command.executeCommand(sender, Collections.singletonList(user)); // then verify(service).send(sender, MessageKey.UNKNOWN_USER); @@ -58,9 +56,10 @@ public class GetEmailCommandTest { PlayerAuth auth = mock(PlayerAuth.class); given(auth.getEmail()).willReturn(email); given(dataSource.getAuth(user)).willReturn(auth); + CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList(user), service); + command.executeCommand(sender, Collections.singletonList(user)); // then verify(sender).sendMessage(argThat(containsString(email))); diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/GetIpCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/GetIpCommandTest.java index 8d0eadc5e..d3d5c3760 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/GetIpCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/GetIpCommandTest.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.util.BukkitService; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -31,22 +30,18 @@ public class GetIpCommandTest { @InjectMocks private GetIpCommand command; - @Mock - private CommandService commandService; - @Mock private BukkitService bukkitService; - @Mock - private CommandSender sender; @Test public void shouldGetIpOfPlayer() { // given given(bukkitService.getPlayerExact(anyString())).willReturn(null); + CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList("Testt"), commandService); + command.executeCommand(sender, Collections.singletonList("Testt")); // then verify(bukkitService).getPlayerExact("Testt"); @@ -60,9 +55,10 @@ public class GetIpCommandTest { String ip = "123.34.56.88"; Player player = mockPlayer(playerName, ip); given(bukkitService.getPlayerExact(playerName)).willReturn(player); + CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList(playerName), commandService); + command.executeCommand(sender, Collections.singletonList(playerName)); // then verify(bukkitService).getPlayerExact(playerName); diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/LastLoginCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/LastLoginCommandTest.java index 04ffabef1..d42996eed 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/LastLoginCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/LastLoginCommandTest.java @@ -29,6 +29,9 @@ import static org.mockito.Mockito.verify; @RunWith(MockitoJUnitRunner.class) public class LastLoginCommandTest { + private static final long HOUR_IN_MSEC = 3600 * 1000; + private static final long DAY_IN_MSEC = 24 * HOUR_IN_MSEC; + @InjectMocks private LastLoginCommand command; @@ -38,20 +41,16 @@ public class LastLoginCommandTest { @Mock private CommandService service; - @Mock - private CommandSender sender; - - private static final long HOUR_IN_MSEC = 3600 * 1000; - private static final long DAY_IN_MSEC = 24 * HOUR_IN_MSEC; @Test public void shouldRejectNonExistentUser() { // given String player = "tester"; given(dataSource.getAuth(player)).willReturn(null); + CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList(player), service); + command.executeCommand(sender, Collections.singletonList(player)); // then verify(dataSource).getAuth(player); @@ -68,9 +67,10 @@ public class LastLoginCommandTest { given(auth.getLastLogin()).willReturn(lastLogin); given(auth.getIp()).willReturn("123.45.66.77"); given(dataSource.getAuth(player)).willReturn(auth); + CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList(player), service); + command.executeCommand(sender, Collections.singletonList(player)); // then verify(dataSource).getAuth(player); @@ -87,6 +87,7 @@ public class LastLoginCommandTest { public void shouldDisplayLastLoginOfCommandSender() { // given String name = "CommandSender"; + CommandSender sender = mock(CommandSender.class); given(sender.getName()).willReturn(name); long lastLogin = System.currentTimeMillis() - @@ -97,7 +98,7 @@ public class LastLoginCommandTest { given(dataSource.getAuth(name)).willReturn(auth); // when - command.executeCommand(sender, Collections.emptyList(), service); + command.executeCommand(sender, Collections.emptyList()); // then verify(dataSource).getAuth(name); diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommandTest.java index 2c80a19d9..e3a79db8e 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/PurgeLastPositionCommandTest.java @@ -35,8 +35,6 @@ public class PurgeLastPositionCommandTest { @Mock private CommandService service; - @Mock - private CommandSender sender; @Test public void shouldPurgeLastPosOfUser() { @@ -44,9 +42,10 @@ public class PurgeLastPositionCommandTest { String player = "_Bobby"; PlayerAuth auth = mock(PlayerAuth.class); given(dataSource.getAuth(player)).willReturn(auth); + CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList(player), service); + command.executeCommand(sender, Collections.singletonList(player)); // then verify(dataSource).getAuth(player); @@ -64,7 +63,7 @@ public class PurgeLastPositionCommandTest { given(dataSource.getAuth(player)).willReturn(auth); // when - command.executeCommand(sender, Collections.emptyList(), service); + command.executeCommand(sender, Collections.emptyList()); // then verify(dataSource).getAuth(player); @@ -76,9 +75,10 @@ public class PurgeLastPositionCommandTest { public void shouldHandleNonExistentUser() { // given String name = "invalidPlayer"; + CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList(name), service); + command.executeCommand(sender, Collections.singletonList(name)); // then verify(dataSource).getAuth(name); @@ -92,9 +92,10 @@ public class PurgeLastPositionCommandTest { PlayerAuth auth2 = mock(PlayerAuth.class); PlayerAuth auth3 = mock(PlayerAuth.class); given(dataSource.getAllAuths()).willReturn(Arrays.asList(auth1, auth2, auth3)); + CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList("*"), service); + command.executeCommand(sender, Collections.singletonList("*")); // then verify(dataSource).getAllAuths(); diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/RegisterAdminCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/RegisterAdminCommandTest.java index c82b7e0c2..d6d0924e7 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/RegisterAdminCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/RegisterAdminCommandTest.java @@ -71,7 +71,7 @@ public class RegisterAdminCommandTest { CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Arrays.asList(user, password), commandService); + command.executeCommand(sender, Arrays.asList(user, password)); // then verify(validationService).validatePassword(password, user); @@ -89,7 +89,7 @@ public class RegisterAdminCommandTest { CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Arrays.asList(user, password), commandService); + command.executeCommand(sender, Arrays.asList(user, password)); TestHelper.runInnerRunnable(bukkitService); // then @@ -111,7 +111,7 @@ public class RegisterAdminCommandTest { CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Arrays.asList(user, password), commandService); + command.executeCommand(sender, Arrays.asList(user, password)); TestHelper.runInnerRunnable(bukkitService); // then @@ -136,7 +136,7 @@ public class RegisterAdminCommandTest { CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Arrays.asList(user, password), commandService); + command.executeCommand(sender, Arrays.asList(user, password)); TestHelper.runInnerRunnable(bukkitService); // then @@ -163,7 +163,7 @@ public class RegisterAdminCommandTest { CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Arrays.asList(user, password), commandService); + command.executeCommand(sender, Arrays.asList(user, password)); TestHelper.runInnerRunnable(bukkitService); runSyncDelayedTask(bukkitService); diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/ReloadCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/ReloadCommandTest.java index d9c28b64e..2371a5005 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/ReloadCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/ReloadCommandTest.java @@ -50,6 +50,9 @@ public class ReloadCommandTest { @Mock private DataSource dataSource; + @Mock + private CommandService commandService; + @BeforeClass public static void setUpLogger() { TestHelper.setupLogger(); @@ -66,17 +69,16 @@ public class ReloadCommandTest { public void shouldReload() { // given CommandSender sender = mock(CommandSender.class); - CommandService service = mock(CommandService.class); given(settings.getProperty(DatabaseSettings.BACKEND)).willReturn(DataSourceType.MYSQL); given(dataSource.getType()).willReturn(DataSourceType.MYSQL); // when - command.executeCommand(sender, Collections.emptyList(), service); + command.executeCommand(sender, Collections.emptyList()); // then verify(settings).reload(); verify(initializer).performReloadOnServices(); - verify(service).send(sender, MessageKey.CONFIG_RELOAD_SUCCESS); + verify(commandService).send(sender, MessageKey.CONFIG_RELOAD_SUCCESS); } @Test @@ -89,7 +91,7 @@ public class ReloadCommandTest { given(dataSource.getType()).willReturn(DataSourceType.MYSQL); // when - command.executeCommand(sender, Collections.emptyList(), service); + command.executeCommand(sender, Collections.emptyList()); // then verify(settings).reload(); @@ -107,7 +109,7 @@ public class ReloadCommandTest { given(dataSource.getType()).willReturn(DataSourceType.SQLITE); // when - command.executeCommand(sender, Collections.emptyList(), service); + command.executeCommand(sender, Collections.emptyList()); // then verify(settings).reload(); diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/SetFirstSpawnCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/SetFirstSpawnCommandTest.java index 17163a3a7..0974da728 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/SetFirstSpawnCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/SetFirstSpawnCommandTest.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.settings.SpawnLoader; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -30,8 +29,6 @@ public class SetFirstSpawnCommandTest { @Mock private SpawnLoader spawnLoader; - @Mock - private CommandService service; @Test public void shouldSetFirstSpawn() { @@ -42,7 +39,7 @@ public class SetFirstSpawnCommandTest { given(spawnLoader.setFirstSpawn(location)).willReturn(true); // when - command.executeCommand(player, Collections.emptyList(), service); + command.executeCommand(player, Collections.emptyList()); // then verify(spawnLoader).setFirstSpawn(location); @@ -58,7 +55,7 @@ public class SetFirstSpawnCommandTest { given(spawnLoader.setFirstSpawn(location)).willReturn(false); // when - command.executeCommand(player, Collections.emptyList(), service); + command.executeCommand(player, Collections.emptyList()); // then verify(spawnLoader).setFirstSpawn(location); diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/SetSpawnCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/SetSpawnCommandTest.java index 77e916d95..8522f997f 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/SetSpawnCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/SetSpawnCommandTest.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.settings.SpawnLoader; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -30,8 +29,6 @@ public class SetSpawnCommandTest { @Mock private SpawnLoader spawnLoader; - @Mock - private CommandService service; @Test public void shouldSetSpawn() { @@ -42,7 +39,7 @@ public class SetSpawnCommandTest { given(spawnLoader.setSpawn(location)).willReturn(true); // when - command.executeCommand(player, Collections.emptyList(), service); + command.executeCommand(player, Collections.emptyList()); // then verify(spawnLoader).setSpawn(location); @@ -58,7 +55,7 @@ public class SetSpawnCommandTest { given(spawnLoader.setSpawn(location)).willReturn(false); // when - command.executeCommand(player, Collections.emptyList(), service); + command.executeCommand(player, Collections.emptyList()); // then verify(spawnLoader).setSpawn(location); diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/SpawnCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/SpawnCommandTest.java index 64d006e23..81a7f416f 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/SpawnCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/SpawnCommandTest.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.authme; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.settings.SpawnLoader; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -33,8 +32,6 @@ public class SpawnCommandTest { @Mock private SpawnLoader spawnLoader; - @Mock - private CommandService service; @Test public void shouldTeleportToSpawn() { @@ -44,7 +41,7 @@ public class SpawnCommandTest { Player player = mock(Player.class); // when - command.executeCommand(player, Collections.emptyList(), service); + command.executeCommand(player, Collections.emptyList()); // then verify(player).teleport(spawn); @@ -58,7 +55,7 @@ public class SpawnCommandTest { Player player = mock(Player.class); // when - command.executeCommand(player, Collections.emptyList(), service); + command.executeCommand(player, Collections.emptyList()); // then verify(player).sendMessage(argThat(containsString("Spawn has failed"))); diff --git a/src/test/java/fr/xephi/authme/command/executable/authme/SwitchAntiBotCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/authme/SwitchAntiBotCommandTest.java index f8945a1c3..cd7045579 100644 --- a/src/test/java/fr/xephi/authme/command/executable/authme/SwitchAntiBotCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/authme/SwitchAntiBotCommandTest.java @@ -44,7 +44,7 @@ public class SwitchAntiBotCommandTest { CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.emptyList(), service); + command.executeCommand(sender, Collections.emptyList()); // then verify(sender).sendMessage(argThat(containsString("status: ACTIVE"))); @@ -56,7 +56,7 @@ public class SwitchAntiBotCommandTest { CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList("on"), service); + command.executeCommand(sender, Collections.singletonList("on")); // then verify(antiBot).overrideAntiBotStatus(true); @@ -69,7 +69,7 @@ public class SwitchAntiBotCommandTest { CommandSender sender = mock(CommandSender.class); // when - command.executeCommand(sender, Collections.singletonList("Off"), service); + command.executeCommand(sender, Collections.singletonList("Off")); // then verify(antiBot).overrideAntiBotStatus(false); @@ -84,7 +84,7 @@ public class SwitchAntiBotCommandTest { given(service.mapPartsToCommand(sender, asList("authme", "antibot"))).willReturn(foundCommandResult); // when - command.executeCommand(sender, Collections.singletonList("wrong"), service); + command.executeCommand(sender, Collections.singletonList("wrong")); // then verify(antiBot, never()).overrideAntiBotStatus(anyBoolean()); diff --git a/src/test/java/fr/xephi/authme/command/executable/captcha/CaptchaCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/captcha/CaptchaCommandTest.java index 52529d19c..5de45e616 100644 --- a/src/test/java/fr/xephi/authme/command/executable/captcha/CaptchaCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/captcha/CaptchaCommandTest.java @@ -44,7 +44,7 @@ public class CaptchaCommandTest { given(playerCache.isAuthenticated(name)).willReturn(true); // when - command.executeCommand(player, Collections.singletonList("123"), commandService); + command.executeCommand(player, Collections.singletonList("123")); // then verify(commandService).send(player, MessageKey.ALREADY_LOGGED_IN_ERROR); @@ -59,7 +59,7 @@ public class CaptchaCommandTest { given(captchaManager.isCaptchaRequired(name)).willReturn(false); // when - command.executeCommand(player, Collections.singletonList("1234"), commandService); + command.executeCommand(player, Collections.singletonList("1234")); // then verify(commandService).send(player, MessageKey.USAGE_LOGIN); @@ -78,7 +78,7 @@ public class CaptchaCommandTest { given(captchaManager.checkCode(name, captchaCode)).willReturn(true); // when - command.executeCommand(player, Collections.singletonList(captchaCode), commandService); + command.executeCommand(player, Collections.singletonList(captchaCode)); // then verify(captchaManager).isCaptchaRequired(name); @@ -102,7 +102,7 @@ public class CaptchaCommandTest { given(captchaManager.generateCode(name)).willReturn(newCode); // when - command.executeCommand(player, Collections.singletonList(captchaCode), commandService); + command.executeCommand(player, Collections.singletonList(captchaCode)); // then verify(captchaManager).isCaptchaRequired(name); diff --git a/src/test/java/fr/xephi/authme/command/executable/changepassword/ChangePasswordCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/changepassword/ChangePasswordCommandTest.java index 57b010067..1c19b945e 100644 --- a/src/test/java/fr/xephi/authme/command/executable/changepassword/ChangePasswordCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/changepassword/ChangePasswordCommandTest.java @@ -73,7 +73,7 @@ public class ChangePasswordCommandTest { CommandSender sender = mock(BlockCommandSender.class); // when - command.executeCommand(sender, new ArrayList(), commandService); + command.executeCommand(sender, new ArrayList()); // then verify(sender).sendMessage(argThat(containsString("only for players"))); @@ -85,7 +85,7 @@ public class ChangePasswordCommandTest { CommandSender sender = initPlayerWithName("name", false); // when - command.executeCommand(sender, Arrays.asList("pass", "pass"), commandService); + command.executeCommand(sender, Arrays.asList("pass", "pass")); // then verify(commandService).send(sender, MessageKey.NOT_LOGGED_IN); @@ -100,7 +100,7 @@ public class ChangePasswordCommandTest { .willReturn(new ValidationResult(MessageKey.INVALID_PASSWORD_LENGTH)); // when - command.executeCommand(sender, Arrays.asList("tester", password), commandService); + command.executeCommand(sender, Arrays.asList("tester", password)); // then verify(validationService).validatePassword(password, "abc12"); @@ -114,7 +114,7 @@ public class ChangePasswordCommandTest { given(validationService.validatePassword("abc123", "parker")).willReturn(new ValidationResult()); // when - command.executeCommand(sender, Arrays.asList("abc123", "abc123"), commandService); + command.executeCommand(sender, Arrays.asList("abc123", "abc123")); // then verify(validationService).validatePassword("abc123", "parker"); diff --git a/src/test/java/fr/xephi/authme/command/executable/email/AddEmailCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/email/AddEmailCommandTest.java index 9b91ee5b9..143ac5fe7 100644 --- a/src/test/java/fr/xephi/authme/command/executable/email/AddEmailCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/email/AddEmailCommandTest.java @@ -41,7 +41,7 @@ public class AddEmailCommandTest { CommandSender sender = mock(BlockCommandSender.class); // when - command.executeCommand(sender, new ArrayList(), commandService); + command.executeCommand(sender, new ArrayList()); // then verifyZeroInteractions(management); @@ -55,7 +55,7 @@ public class AddEmailCommandTest { given(commandService.validateEmail(email)).willReturn(true); // when - command.executeCommand(sender, Arrays.asList(email, email), commandService); + command.executeCommand(sender, Arrays.asList(email, email)); // then verify(management).performAddEmail(sender, email); @@ -69,7 +69,7 @@ public class AddEmailCommandTest { given(commandService.validateEmail(email)).willReturn(true); // when - command.executeCommand(sender, Arrays.asList(email, "wrongConf"), commandService); + command.executeCommand(sender, Arrays.asList(email, "wrongConf")); // then verifyZeroInteractions(management); diff --git a/src/test/java/fr/xephi/authme/command/executable/email/ChangeEmailCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/email/ChangeEmailCommandTest.java index d9f7e0cd2..240ace312 100644 --- a/src/test/java/fr/xephi/authme/command/executable/email/ChangeEmailCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/email/ChangeEmailCommandTest.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.email; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.process.Management; import org.bukkit.command.BlockCommandSender; import org.bukkit.command.CommandSender; @@ -30,9 +29,6 @@ public class ChangeEmailCommandTest { @Mock private Management management; - @Mock - private CommandService commandService; - @Test public void shouldRejectNonPlayerSender() { @@ -40,7 +36,7 @@ public class ChangeEmailCommandTest { CommandSender sender = mock(BlockCommandSender.class); // when - command.executeCommand(sender, new ArrayList(), commandService); + command.executeCommand(sender, new ArrayList()); // then verifyZeroInteractions(management); @@ -52,7 +48,7 @@ public class ChangeEmailCommandTest { Player sender = mock(Player.class); // when - command.executeCommand(sender, Arrays.asList("new.mail@example.org", "old_mail@example.org"), commandService); + command.executeCommand(sender, Arrays.asList("new.mail@example.org", "old_mail@example.org")); // then verify(management).performChangeEmail(sender, "new.mail@example.org", "old_mail@example.org"); diff --git a/src/test/java/fr/xephi/authme/command/executable/login/LoginCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/login/LoginCommandTest.java index 2eede4a13..21e938bfc 100644 --- a/src/test/java/fr/xephi/authme/command/executable/login/LoginCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/login/LoginCommandTest.java @@ -1,6 +1,5 @@ package fr.xephi.authme.command.executable.login; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.process.Management; import org.bukkit.command.BlockCommandSender; import org.bukkit.command.CommandSender; @@ -33,8 +32,6 @@ public class LoginCommandTest { @Mock private Management management; - @Mock - private CommandService commandService; @Test public void shouldStopIfSenderIsNotAPlayer() { @@ -42,7 +39,7 @@ public class LoginCommandTest { CommandSender sender = mock(BlockCommandSender.class); // when - command.executeCommand(sender, new ArrayList(), commandService); + command.executeCommand(sender, new ArrayList()); // then verifyZeroInteractions(management); @@ -55,7 +52,7 @@ public class LoginCommandTest { Player sender = mock(Player.class); // when - command.executeCommand(sender, Collections.singletonList("password"), commandService); + command.executeCommand(sender, Collections.singletonList("password")); // then verify(management).performLogin(eq(sender), eq("password"), eq(false)); diff --git a/src/test/java/fr/xephi/authme/command/executable/logout/LogoutCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/logout/LogoutCommandTest.java index bca24ac2e..7bc9eeb10 100644 --- a/src/test/java/fr/xephi/authme/command/executable/logout/LogoutCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/logout/LogoutCommandTest.java @@ -1,11 +1,9 @@ package fr.xephi.authme.command.executable.logout; -import fr.xephi.authme.command.CommandService; import fr.xephi.authme.process.Management; import org.bukkit.command.BlockCommandSender; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; @@ -33,13 +31,6 @@ public class LogoutCommandTest { @Mock private Management management; - @Mock - private CommandService commandService; - - @Before - public void initializeAuthMeMock() { - commandService = mock(CommandService.class); - } @Test public void shouldStopIfSenderIsNotAPlayer() { @@ -47,7 +38,7 @@ public class LogoutCommandTest { CommandSender sender = mock(BlockCommandSender.class); // when - command.executeCommand(sender, new ArrayList(), commandService); + command.executeCommand(sender, new ArrayList()); // then verifyZeroInteractions(management); @@ -60,7 +51,7 @@ public class LogoutCommandTest { Player sender = mock(Player.class); // when - command.executeCommand(sender, Collections.singletonList("password"), commandService); + command.executeCommand(sender, Collections.singletonList("password")); // then verify(management).performLogout(sender); diff --git a/src/test/java/fr/xephi/authme/command/executable/register/RegisterCommandTest.java b/src/test/java/fr/xephi/authme/command/executable/register/RegisterCommandTest.java index f33ad87e6..217b74bef 100644 --- a/src/test/java/fr/xephi/authme/command/executable/register/RegisterCommandTest.java +++ b/src/test/java/fr/xephi/authme/command/executable/register/RegisterCommandTest.java @@ -49,8 +49,6 @@ public class RegisterCommandTest { @Mock private Management management; - @Mock - private Player sender; @BeforeClass public static void setup() { @@ -70,7 +68,7 @@ public class RegisterCommandTest { CommandSender sender = mock(BlockCommandSender.class); // when - command.executeCommand(sender, new ArrayList(), commandService); + command.executeCommand(sender, new ArrayList()); // then verify(sender).sendMessage(argThat(containsString("Player only!"))); @@ -81,21 +79,25 @@ public class RegisterCommandTest { public void shouldForwardToManagementForTwoFactor() { // given given(commandService.getProperty(SecuritySettings.PASSWORD_HASH)).willReturn(HashAlgorithm.TWO_FACTOR); + Player player = mock(Player.class); // when - command.executeCommand(sender, Collections.emptyList(), commandService); + command.executeCommand(player, Collections.emptyList()); // then - verify(management).performRegister(sender, "", "", true); + verify(management).performRegister(player, "", "", true); } @Test public void shouldReturnErrorForEmptyArguments() { - // given / when - command.executeCommand(sender, Collections.emptyList(), commandService); + // given + Player player = mock(Player.class); + + // when + command.executeCommand(player, Collections.emptyList()); // then - verify(commandService).send(sender, MessageKey.USAGE_REGISTER); + verify(commandService).send(player, MessageKey.USAGE_REGISTER); verifyZeroInteractions(management); } @@ -103,12 +105,13 @@ public class RegisterCommandTest { public void shouldReturnErrorForMissingConfirmation() { // given given(commandService.getProperty(RestrictionSettings.ENABLE_PASSWORD_CONFIRMATION)).willReturn(true); + Player player = mock(Player.class); // when - command.executeCommand(sender, Collections.singletonList("arrrr"), commandService); + command.executeCommand(player, Collections.singletonList("arrrr")); // then - verify(commandService).send(sender, MessageKey.USAGE_REGISTER); + verify(commandService).send(player, MessageKey.USAGE_REGISTER); verifyZeroInteractions(management); } @@ -117,12 +120,13 @@ public class RegisterCommandTest { // given given(commandService.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)).willReturn(true); given(commandService.getProperty(RegistrationSettings.ENABLE_CONFIRM_EMAIL)).willReturn(true); + Player player = mock(Player.class); // when - command.executeCommand(sender, Collections.singletonList("test@example.org"), commandService); + command.executeCommand(player, Collections.singletonList("test@example.org")); // then - verify(commandService).send(sender, MessageKey.USAGE_REGISTER); + verify(commandService).send(player, MessageKey.USAGE_REGISTER); verifyZeroInteractions(management); } @@ -132,12 +136,13 @@ public class RegisterCommandTest { given(commandService.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)).willReturn(true); given(commandService.getProperty(RegistrationSettings.ENABLE_CONFIRM_EMAIL)).willReturn(false); given(commandService.getProperty(EmailSettings.MAIL_ACCOUNT)).willReturn(""); + Player player = mock(Player.class); // when - command.executeCommand(sender, Collections.singletonList("myMail@example.tld"), commandService); + command.executeCommand(player, Collections.singletonList("myMail@example.tld")); // then - verify(sender).sendMessage(argThat(containsString("no email address"))); + verify(player).sendMessage(argThat(containsString("no email address"))); verifyZeroInteractions(management); } @@ -150,13 +155,14 @@ public class RegisterCommandTest { given(commandService.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)).willReturn(true); given(commandService.getProperty(RegistrationSettings.ENABLE_CONFIRM_EMAIL)).willReturn(true); given(commandService.getProperty(EmailSettings.MAIL_ACCOUNT)).willReturn("server@example.com"); + Player player = mock(Player.class); // when - command.executeCommand(sender, Arrays.asList(playerMail, playerMail), commandService); + command.executeCommand(player, Arrays.asList(playerMail, playerMail)); // then verify(commandService).validateEmail(playerMail); - verify(commandService).send(sender, MessageKey.INVALID_EMAIL); + verify(commandService).send(player, MessageKey.INVALID_EMAIL); verifyZeroInteractions(management); } @@ -169,12 +175,13 @@ public class RegisterCommandTest { given(commandService.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)).willReturn(true); given(commandService.getProperty(RegistrationSettings.ENABLE_CONFIRM_EMAIL)).willReturn(true); given(commandService.getProperty(EmailSettings.MAIL_ACCOUNT)).willReturn("server@example.com"); + Player player = mock(Player.class); // when - command.executeCommand(sender, Arrays.asList(playerMail, "invalid"), commandService); + command.executeCommand(player, Arrays.asList(playerMail, "invalid")); // then - verify(commandService).send(sender, MessageKey.USAGE_REGISTER); + verify(commandService).send(player, MessageKey.USAGE_REGISTER); verifyZeroInteractions(management); } @@ -189,35 +196,40 @@ public class RegisterCommandTest { given(commandService.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)).willReturn(true); given(commandService.getProperty(RegistrationSettings.ENABLE_CONFIRM_EMAIL)).willReturn(true); given(commandService.getProperty(EmailSettings.MAIL_ACCOUNT)).willReturn("server@example.com"); + Player player = mock(Player.class); // when - command.executeCommand(sender, Arrays.asList(playerMail, playerMail), commandService); + command.executeCommand(player, Arrays.asList(playerMail, playerMail)); // then verify(commandService).validateEmail(playerMail); - verify(management).performRegister(eq(sender), argThat(stringWithLength(passLength)), eq(playerMail), eq(true)); + verify(management).performRegister(eq(player), argThat(stringWithLength(passLength)), eq(playerMail), eq(true)); } @Test public void shouldRejectInvalidPasswordConfirmation() { // given given(commandService.getProperty(RestrictionSettings.ENABLE_PASSWORD_CONFIRMATION)).willReturn(true); + Player player = mock(Player.class); // when - command.executeCommand(sender, Arrays.asList("myPass", "mypass"), commandService); + command.executeCommand(player, Arrays.asList("myPass", "mypass")); // then - verify(commandService).send(sender, MessageKey.PASSWORD_MATCH_ERROR); + verify(commandService).send(player, MessageKey.PASSWORD_MATCH_ERROR); verifyZeroInteractions(management); } @Test public void shouldPerformPasswordValidation() { - // given / when - command.executeCommand(sender, Collections.singletonList("myPass"), commandService); + // given + Player player = mock(Player.class); + + // when + command.executeCommand(player, Collections.singletonList("myPass")); // then - verify(management).performRegister(sender, "myPass", "", true); + verify(management).performRegister(player, "myPass", "", true); } diff --git a/src/test/java/fr/xephi/authme/command/help/CommandSyntaxHelperTest.java b/src/test/java/fr/xephi/authme/command/help/CommandSyntaxHelperTest.java index 608951deb..77320d151 100644 --- a/src/test/java/fr/xephi/authme/command/help/CommandSyntaxHelperTest.java +++ b/src/test/java/fr/xephi/authme/command/help/CommandSyntaxHelperTest.java @@ -1,5 +1,6 @@ package fr.xephi.authme.command.help; +import fr.xephi.authme.TestHelper; import fr.xephi.authme.command.CommandDescription; import fr.xephi.authme.command.TestCommandsUtil; import org.bukkit.ChatColor; @@ -66,4 +67,10 @@ public class CommandSyntaxHelperTest { assertThat(result, equalTo(ChatColor.WHITE + "/email" + ChatColor.YELLOW + " [player]")); } + @Test + public void shouldHaveHiddenConstructor() { + // given / when / then + TestHelper.validateHasOnlyPrivateEmptyConstructor(CommandSyntaxHelper.class); + } + }