#1146 List available converter, reference converters Wiki page in config.yml

This commit is contained in:
ljacqu
2017-05-21 12:28:35 +02:00
parent 5afe6bb35b
commit 1c46c92b4e
5 changed files with 58 additions and 22 deletions
@@ -316,7 +316,7 @@ public class CommandInitializer {
.description("Converter command")
.detailedDescription("Converter command for AuthMeReloaded.")
.withArgument("job", "Conversion job: xauth / crazylogin / rakamak / "
+ "royalauth / vauth / sqliteToSql / mysqlToSqlite / loginsecurity", false)
+ "royalauth / vauth / sqliteToSql / mysqlToSqlite / loginsecurity", true)
.permission(AdminPermission.CONVERTER)
.executableCommand(ConverterCommand.class)
.register();
@@ -1,7 +1,7 @@
package fr.xephi.authme.command.executable.authme;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSortedMap;
import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.command.ExecutableCommand;
import fr.xephi.authme.datasource.converter.Converter;
@@ -41,14 +41,10 @@ public class ConverterCommand implements ExecutableCommand {
private Factory<Converter> converterFactory;
@Override
public void executeCommand(final CommandSender sender, List<String> arguments) {
// Get the conversion job
String job = arguments.get(0);
// Determine the job type
Class<? extends Converter> converterClass = CONVERTERS.get(job.toLowerCase());
public void executeCommand(CommandSender sender, List<String> arguments) {
Class<? extends Converter> converterClass = getConverterClassFromArgs(arguments);
if (converterClass == null) {
sender.sendMessage("[AuthMe] Converter does not exist!");
sender.sendMessage("Converters: " + String.join(", ", CONVERTERS.keySet()));
return;
}
@@ -69,7 +65,13 @@ public class ConverterCommand implements ExecutableCommand {
});
// Show a status message
sender.sendMessage("[AuthMe] Successfully started " + job);
sender.sendMessage("[AuthMe] Successfully started " + arguments.get(0));
}
private static Class<? extends Converter> getConverterClassFromArgs(List<String> arguments) {
return arguments.isEmpty()
? null
: CONVERTERS.get(arguments.get(0).toLowerCase());
}
/**
@@ -78,7 +80,7 @@ public class ConverterCommand implements ExecutableCommand {
* @return map with all available converters
*/
private static Map<String, Class<? extends Converter>> getConverters() {
return ImmutableMap.<String, Class<? extends Converter>>builder()
return ImmutableSortedMap.<String, Class<? extends Converter>>naturalOrder()
.put("xauth", XAuthConverter.class)
.put("crazylogin", CrazyLoginConverter.class)
.put("rakamak", RakamakConverter.class)
@@ -89,5 +91,4 @@ public class ConverterCommand implements ExecutableCommand {
.put("loginsecurity", LoginSecurityConverter.class)
.build();
}
}
@@ -1,8 +1,12 @@
package fr.xephi.authme.settings.properties;
import ch.jalu.configme.Comment;
import ch.jalu.configme.SectionComments;
import ch.jalu.configme.SettingsHolder;
import ch.jalu.configme.properties.Property;
import com.google.common.collect.ImmutableMap;
import java.util.Map;
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
@@ -47,4 +51,9 @@ public final class ConverterSettings implements SettingsHolder {
private ConverterSettings() {
}
@SectionComments
public static Map<String, String[]> buildSectionComments() {
return ImmutableMap.of("Converter",
new String[]{"Converter settings: see https://github.com/AuthMe/AuthMeReloaded/wiki/Converters"});
}
}
@@ -42,7 +42,7 @@ public class ConverterCommandTest {
private ConverterCommand command;
@Mock
private CommonService commandService;
private CommonService commonService;
@Mock
private BukkitService bukkitService;
@@ -64,10 +64,23 @@ public class ConverterCommandTest {
command.executeCommand(sender, Collections.singletonList("invalid"));
// then
verify(sender).sendMessage(argThat(containsString("Converter does not exist")));
verifyNoMoreInteractions(commandService);
verifyZeroInteractions(converterFactory);
verifyZeroInteractions(bukkitService);
String converters = String.join(", ", ConverterCommand.CONVERTERS.keySet());
verify(sender).sendMessage(argThat(containsString(converters)));
verifyZeroInteractions(commonService, converterFactory, bukkitService);
}
@Test
public void shouldHandleCommandWithNoArgs() {
// given
CommandSender sender = mock(CommandSender.class);
// when
command.executeCommand(sender, Collections.emptyList());
// then
String converters = String.join(", ", ConverterCommand.CONVERTERS.keySet());
verify(sender).sendMessage(argThat(containsString(converters)));
verifyZeroInteractions(commonService, converterFactory, bukkitService);
}
@Test
@@ -122,7 +135,7 @@ public class ConverterCommandTest {
verifyNoMoreInteractions(converter);
verify(converterFactory).newInstance(converterClass);
verifyNoMoreInteractions(converterFactory);
verify(commandService).send(sender, MessageKey.ERROR);
verify(commonService).send(sender, MessageKey.ERROR);
}
private <T extends Converter> T createMockReturnedByInjector(Class<T> clazz) {