Remove migration of commands from config.yml to commands.yml
- Migration was shipped with the 5.2 release and is now becoming harder to maintain; since it's quite old we drop it
This commit is contained in:
@@ -97,25 +97,6 @@ public class SettingsMigrationServiceTest {
|
||||
assertThat(migrationService.returnedValues, contains(true, false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldKeepOldForceCommandSettings() throws IOException {
|
||||
// given
|
||||
File dataFolder = temporaryFolder.newFolder();
|
||||
File configFile = new File(dataFolder, "config.yml");
|
||||
Files.copy(getJarFile(OLD_CONFIG_FILE), configFile);
|
||||
PropertyResource resource = new YamlFileResource(configFile);
|
||||
SettingsMigrationService migrationService = new SettingsMigrationService(dataFolder);
|
||||
|
||||
// when
|
||||
migrationService.performMigrations(resource, AuthMeSettingsRetriever.buildConfigurationData().getProperties());
|
||||
|
||||
// then
|
||||
assertThat(migrationService.getOnLoginCommands(), contains("spawn"));
|
||||
assertThat(migrationService.getOnLoginConsoleCommands(), contains("sethome %p:lastloc", "msg %p Welcome back"));
|
||||
assertThat(migrationService.getOnRegisterCommands(), contains("me registers", "msg CONSOLE hi"));
|
||||
assertThat(migrationService.getOnRegisterConsoleCommands(), contains("sethome %p:regloc"));
|
||||
}
|
||||
|
||||
private void verifyHasUpToDateSettings(Settings settings, File dataFolder) throws IOException {
|
||||
assertThat(settings.getProperty(ALLOWED_NICKNAME_CHARACTERS), equalTo(ALLOWED_NICKNAME_CHARACTERS.getDefaultValue()));
|
||||
assertThat(settings.getProperty(DELAY_JOIN_MESSAGE), equalTo(true));
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
package fr.xephi.authme.settings.commandconfig;
|
||||
|
||||
import org.hamcrest.Description;
|
||||
import org.hamcrest.Matcher;
|
||||
import org.hamcrest.TypeSafeMatcher;
|
||||
|
||||
/**
|
||||
* Helper class for tests around the command configuration.
|
||||
*/
|
||||
final class CommandConfigTestHelper {
|
||||
|
||||
private CommandConfigTestHelper() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a matcher for verifying a {@link Command} object.
|
||||
*
|
||||
* @param cmd the expected command line
|
||||
* @param executor the expected executor
|
||||
* @return the matcher
|
||||
*/
|
||||
static Matcher<Command> isCommand(String cmd, Executor executor) {
|
||||
return new TypeSafeMatcher<Command>() {
|
||||
@Override
|
||||
protected boolean matchesSafely(Command item) {
|
||||
return executor.equals(item.getExecutor()) && cmd.equals(item.getCommand());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void describeTo(Description description) {
|
||||
description.appendText("Command '" + cmd + "' run by '" + executor + "'");
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -6,34 +6,17 @@ import ch.jalu.configme.configurationdata.ConfigurationDataBuilder;
|
||||
import ch.jalu.configme.resource.PropertyResource;
|
||||
import ch.jalu.configme.resource.YamlFileResource;
|
||||
import fr.xephi.authme.TestHelper;
|
||||
import fr.xephi.authme.settings.SettingsMigrationService;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import static fr.xephi.authme.settings.commandconfig.CommandConfigTestHelper.isCommand;
|
||||
import static java.util.Collections.emptyList;
|
||||
import static org.hamcrest.Matchers.anEmptyMap;
|
||||
import static org.hamcrest.Matchers.contains;
|
||||
import static org.hamcrest.Matchers.containsInAnyOrder;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.sameInstance;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.mockito.BDDMockito.given;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verifyZeroInteractions;
|
||||
|
||||
/**
|
||||
* Test for {@link CommandMigrationService}.
|
||||
@@ -44,81 +27,11 @@ public class CommandMigrationServiceTest {
|
||||
@InjectMocks
|
||||
private CommandMigrationService commandMigrationService;
|
||||
|
||||
@Mock
|
||||
private SettingsMigrationService settingsMigrationService;
|
||||
|
||||
private CommandConfig commandConfig = new CommandConfig();
|
||||
|
||||
@BeforeClass
|
||||
public static void setUpLogger() {
|
||||
TestHelper.setupLogger();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldNotPerformAnyMigration() {
|
||||
// given
|
||||
given(settingsMigrationService.getOnLoginCommands()).willReturn(emptyList());
|
||||
given(settingsMigrationService.getOnLoginConsoleCommands()).willReturn(emptyList());
|
||||
given(settingsMigrationService.getOnRegisterCommands()).willReturn(emptyList());
|
||||
given(settingsMigrationService.getOnRegisterConsoleCommands()).willReturn(emptyList());
|
||||
commandConfig.getOnRegister().put("existing", new Command("existing cmd", Executor.PLAYER));
|
||||
CommandConfig configSpy = spy(commandConfig);
|
||||
|
||||
// when
|
||||
boolean result = commandMigrationService.transformOldCommands(configSpy);
|
||||
|
||||
// then
|
||||
assertThat(result, equalTo(false));
|
||||
verifyZeroInteractions(configSpy);
|
||||
assertThat(configSpy.getOnRegister().keySet(), contains("existing"));
|
||||
assertThat(configSpy.getOnLogin(), anEmptyMap());
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void shouldPerformMigration() {
|
||||
// given
|
||||
List<String> onLogin = Collections.singletonList("on login command");
|
||||
given(settingsMigrationService.getOnLoginCommands()).willReturn(onLogin);
|
||||
List<String> onLoginConsole = Arrays.asList("cmd1", "cmd2 %p", "cmd3");
|
||||
given(settingsMigrationService.getOnLoginConsoleCommands()).willReturn(onLoginConsole);
|
||||
given(settingsMigrationService.getOnRegisterCommands()).willReturn(emptyList());
|
||||
List<String> onRegisterConsole = Arrays.asList("log %p registered", "whois %p");
|
||||
given(settingsMigrationService.getOnRegisterConsoleCommands()).willReturn(onRegisterConsole);
|
||||
|
||||
Map<String, OnLoginCommand> onLoginCommands = new LinkedHashMap<>();
|
||||
OnLoginCommand existingCommand = new OnLoginCommand("helpop %p has many alts", Executor.CONSOLE);
|
||||
existingCommand.setIfNumberOfAccountsAtLeast(Optional.of(2));
|
||||
onLoginCommands.put("alert_on_alts", existingCommand);
|
||||
commandConfig.setOnLogin(onLoginCommands);
|
||||
Map<String, Command> onRegisterCommands = new LinkedHashMap<>();
|
||||
onRegisterCommands.put("ex_cmd", new Command("existing", Executor.CONSOLE));
|
||||
onRegisterCommands.put("ex_cmd2", new Command("existing2", Executor.PLAYER));
|
||||
commandConfig.setOnRegister(onRegisterCommands);
|
||||
|
||||
// when
|
||||
boolean result = commandMigrationService.transformOldCommands(commandConfig);
|
||||
|
||||
// then
|
||||
assertThat(result, equalTo(true));
|
||||
assertThat(commandConfig.getOnLogin(), sameInstance(onLoginCommands));
|
||||
Collection<OnLoginCommand> loginCmdList = onLoginCommands.values();
|
||||
assertThat(loginCmdList, contains(
|
||||
equalTo(existingCommand),
|
||||
isCommand("on login command", Executor.PLAYER),
|
||||
isCommand("cmd1", Executor.CONSOLE),
|
||||
isCommand("cmd2 %p", Executor.CONSOLE),
|
||||
isCommand("cmd3", Executor.CONSOLE)));
|
||||
|
||||
assertThat(commandConfig.getOnRegister(), sameInstance(onRegisterCommands));
|
||||
Collection<Command> registerCmdList = onRegisterCommands.values();
|
||||
assertThat(registerCmdList, contains(
|
||||
isCommand("existing", Executor.CONSOLE),
|
||||
isCommand("existing2", Executor.PLAYER),
|
||||
isCommand("log %p registered", Executor.CONSOLE),
|
||||
isCommand("whois %p", Executor.CONSOLE)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldRewriteForEmptyFile() {
|
||||
// given
|
||||
|
||||
@@ -4,22 +4,17 @@ import ch.jalu.configme.configurationdata.ConfigurationDataBuilder;
|
||||
import ch.jalu.configme.resource.PropertyResource;
|
||||
import ch.jalu.configme.resource.YamlFileResource;
|
||||
import fr.xephi.authme.TestHelper;
|
||||
import fr.xephi.authme.settings.SettingsMigrationService;
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TemporaryFolder;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collections;
|
||||
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.mockito.BDDMockito.given;
|
||||
|
||||
/**
|
||||
* Tests that commands.yml is well-formed.
|
||||
@@ -30,20 +25,9 @@ public class CommandYmlConsistencyTest {
|
||||
@InjectMocks
|
||||
private CommandMigrationService commandMigrationService;
|
||||
|
||||
@Mock
|
||||
private SettingsMigrationService settingsMigrationService;
|
||||
|
||||
@Rule
|
||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||
|
||||
@Before
|
||||
public void setUpSettingsMigrationService() {
|
||||
given(settingsMigrationService.getOnLoginCommands()).willReturn(Collections.emptyList());
|
||||
given(settingsMigrationService.getOnLoginConsoleCommands()).willReturn(Collections.emptyList());
|
||||
given(settingsMigrationService.getOnRegisterCommands()).willReturn(Collections.emptyList());
|
||||
given(settingsMigrationService.getOnRegisterConsoleCommands()).willReturn(Collections.emptyList());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldLoadWithNoMigrations() {
|
||||
// given
|
||||
|
||||
Reference in New Issue
Block a user