mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-11-27 04:35:12 +01:00
#293 Fix tests and create consistency test for English help file
This commit is contained in:
parent
26716b0f79
commit
6b1112438a
@ -18,7 +18,7 @@ import java.util.stream.Collectors;
|
|||||||
*/
|
*/
|
||||||
public class HelpMessagesService implements Reloadable {
|
public class HelpMessagesService implements Reloadable {
|
||||||
|
|
||||||
private static final String COMMAND_PREFIX = "command.";
|
private static final String COMMAND_PREFIX = "commands.";
|
||||||
private static final String DESCRIPTION_SUFFIX = ".description";
|
private static final String DESCRIPTION_SUFFIX = ".description";
|
||||||
private static final String DETAILED_DESCRIPTION_SUFFIX = ".detailedDescription";
|
private static final String DETAILED_DESCRIPTION_SUFFIX = ".detailedDescription";
|
||||||
private static final String DEFAULT_PERMISSIONS_PATH = "common.defaultPermissions.";
|
private static final String DEFAULT_PERMISSIONS_PATH = "common.defaultPermissions.";
|
||||||
|
27
src/main/resources/messages/help_de.yml
Normal file
27
src/main/resources/messages/help_de.yml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
common:
|
||||||
|
description.short: 'Beschreibung'
|
||||||
|
description.detailed: 'Detaillierte Beschreibung'
|
||||||
|
usage: 'Gebrauch'
|
||||||
|
arguments: 'Argumente'
|
||||||
|
permissions: 'Rechte'
|
||||||
|
optional: 'Optional'
|
||||||
|
hasPermission: 'Du hast Berechtigung'
|
||||||
|
noPermission: 'Keine Berechtigung'
|
||||||
|
default: 'Default'
|
||||||
|
alternatives: 'Alternativen'
|
||||||
|
result: 'Resultat'
|
||||||
|
commands: 'Kommandos'
|
||||||
|
defaultPermissions:
|
||||||
|
notAllowed: 'Kein Recht'
|
||||||
|
opOnly: 'Nur OP''s'
|
||||||
|
allowed: 'Allen erlaubt'
|
||||||
|
commands:
|
||||||
|
authme.register:
|
||||||
|
description: 'Registriert einen Benutzer'
|
||||||
|
detailedDescription: 'Registriert den Benutzer mit dem gegebenen Passwort.'
|
||||||
|
arg1:
|
||||||
|
label: 'spieler'
|
||||||
|
description: 'Name des Spielers'
|
||||||
|
arg2:
|
||||||
|
label: 'passwort'
|
||||||
|
description: 'Passwort'
|
@ -4,7 +4,7 @@ common:
|
|||||||
usage: 'Usage'
|
usage: 'Usage'
|
||||||
arguments: 'Arguments'
|
arguments: 'Arguments'
|
||||||
permissions: 'Permissions'
|
permissions: 'Permissions'
|
||||||
optional: '(Optional)'
|
optional: 'Optional'
|
||||||
hasPermission: 'You have permission'
|
hasPermission: 'You have permission'
|
||||||
noPermission: 'No permission'
|
noPermission: 'No permission'
|
||||||
default: 'Default'
|
default: 'Default'
|
||||||
@ -15,16 +15,13 @@ common:
|
|||||||
notAllowed: 'No permission'
|
notAllowed: 'No permission'
|
||||||
opOnly: 'OP''s only'
|
opOnly: 'OP''s only'
|
||||||
allowed: 'Everyone allowed'
|
allowed: 'Everyone allowed'
|
||||||
command:
|
commands:
|
||||||
register:
|
|
||||||
description: 'Register with this command'
|
|
||||||
detailedDescription: 'Use /register <pw> <pw>'
|
|
||||||
authme.register:
|
authme.register:
|
||||||
description: 'Admin registration'
|
description: 'Register a player'
|
||||||
detailedDescription: 'Used by l33t adminz'
|
detailedDescription: 'Register the specified player with the specified password.'
|
||||||
arg1:
|
arg1:
|
||||||
label: 'n4me'
|
label: 'player'
|
||||||
description: 'The name to save'
|
description: 'Player name'
|
||||||
arg2:
|
arg2:
|
||||||
label: 'passw0rd'
|
label: 'password'
|
||||||
description: 'Password to use yo'
|
description: 'Password'
|
||||||
|
@ -0,0 +1,89 @@
|
|||||||
|
package fr.xephi.authme.command.help;
|
||||||
|
|
||||||
|
import fr.xephi.authme.TestHelper;
|
||||||
|
import fr.xephi.authme.command.CommandDescription;
|
||||||
|
import fr.xephi.authme.command.CommandInitializer;
|
||||||
|
import org.bukkit.configuration.MemorySection;
|
||||||
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import static org.hamcrest.Matchers.contains;
|
||||||
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
|
import static org.hamcrest.Matchers.instanceOf;
|
||||||
|
import static org.junit.Assert.assertThat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests that /messages/help_en.yml contains texts that correspond
|
||||||
|
* to the texts provided in the CommandDescription.
|
||||||
|
*/
|
||||||
|
public class HelpMessagesConsistencyTest {
|
||||||
|
|
||||||
|
private static final File DEFAULT_MESSAGES_FILE = TestHelper.getJarFile("/messages/help_en.yml");
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldHaveIdenticalTexts() {
|
||||||
|
// given
|
||||||
|
CommandDescription description = getAuthMeRegisterDescription();
|
||||||
|
FileConfiguration configuration = YamlConfiguration.loadConfiguration(DEFAULT_MESSAGES_FILE);
|
||||||
|
final String path = "commands.authme.register.";
|
||||||
|
|
||||||
|
// when / then
|
||||||
|
assertThat(configuration.get(path + "description"), equalTo(description.getDescription()));
|
||||||
|
assertThat(configuration.get(path + "detailedDescription"), equalTo(description.getDetailedDescription()));
|
||||||
|
assertThat(configuration.get(path + "arg1.label"), equalTo(description.getArguments().get(0).getName()));
|
||||||
|
assertThat(configuration.get(path + "arg1.description"), equalTo(description.getArguments().get(0).getDescription()));
|
||||||
|
assertThat(configuration.get(path + "arg2.label"), equalTo(description.getArguments().get(1).getName()));
|
||||||
|
assertThat(configuration.get(path + "arg2.description"), equalTo(description.getArguments().get(1).getDescription()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Since CommandInitializer contains all descriptions for commands in English, the help_en.yml file
|
||||||
|
* only contains an entry for one command as to provide an example.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void shouldOnlyHaveDescriptionForOneCommand() {
|
||||||
|
// given
|
||||||
|
FileConfiguration configuration = YamlConfiguration.loadConfiguration(DEFAULT_MESSAGES_FILE);
|
||||||
|
|
||||||
|
// when
|
||||||
|
Object commands = configuration.get("commands");
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertThat(commands, instanceOf(MemorySection.class));
|
||||||
|
assertThat(((MemorySection) commands).getKeys(false), contains("authme"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldHaveEntryForEachHelpMessageKey() {
|
||||||
|
// given
|
||||||
|
FileConfiguration configuration = YamlConfiguration.loadConfiguration(DEFAULT_MESSAGES_FILE);
|
||||||
|
|
||||||
|
// when / then
|
||||||
|
for (HelpMessageKey key : HelpMessageKey.values()) {
|
||||||
|
assertThat("Default configuration has entry for key '" + key + "'",
|
||||||
|
configuration.contains(key.getKey()), equalTo(true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the CommandDescription object for the {@code /authme register} command.
|
||||||
|
*/
|
||||||
|
private static CommandDescription getAuthMeRegisterDescription() {
|
||||||
|
Set<CommandDescription> commands = new CommandInitializer().getCommands();
|
||||||
|
|
||||||
|
List<CommandDescription> children = commands.stream()
|
||||||
|
.filter(command -> command.getLabels().contains("authme"))
|
||||||
|
.map(CommandDescription::getChildren)
|
||||||
|
.findFirst().get();
|
||||||
|
|
||||||
|
return children
|
||||||
|
.stream()
|
||||||
|
.filter(child -> child.getLabels().contains("register"))
|
||||||
|
.findFirst().get();
|
||||||
|
}
|
||||||
|
}
|
@ -8,6 +8,7 @@ import fr.xephi.authme.command.FoundCommandResult;
|
|||||||
import fr.xephi.authme.command.FoundResultStatus;
|
import fr.xephi.authme.command.FoundResultStatus;
|
||||||
import fr.xephi.authme.command.TestCommandsUtil;
|
import fr.xephi.authme.command.TestCommandsUtil;
|
||||||
import fr.xephi.authme.permission.AdminPermission;
|
import fr.xephi.authme.permission.AdminPermission;
|
||||||
|
import fr.xephi.authme.permission.DefaultPermission;
|
||||||
import fr.xephi.authme.permission.PermissionsManager;
|
import fr.xephi.authme.permission.PermissionsManager;
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
import fr.xephi.authme.settings.properties.PluginSettings;
|
import fr.xephi.authme.settings.properties.PluginSettings;
|
||||||
@ -72,8 +73,7 @@ public class HelpProviderTest {
|
|||||||
@BeforeInjecting
|
@BeforeInjecting
|
||||||
public void setInitialSettings() {
|
public void setInitialSettings() {
|
||||||
given(settings.getProperty(PluginSettings.HELP_HEADER)).willReturn(HELP_HEADER);
|
given(settings.getProperty(PluginSettings.HELP_HEADER)).willReturn(HELP_HEADER);
|
||||||
given(helpMessagesService.buildLocalizedDescription(any(CommandDescription.class)))
|
setDefaultHelpMessages(helpMessagesService);
|
||||||
.willAnswer(new ReturnsArgumentAt(0));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -160,9 +160,9 @@ public class HelpProviderTest {
|
|||||||
assertThat(lines, hasSize(5));
|
assertThat(lines, hasSize(5));
|
||||||
assertThat(removeColors(lines.get(1)), containsString("Permissions:"));
|
assertThat(removeColors(lines.get(1)), containsString("Permissions:"));
|
||||||
assertThat(removeColors(lines.get(2)),
|
assertThat(removeColors(lines.get(2)),
|
||||||
containsString(AdminPermission.UNREGISTER.getNode() + " (You have permission)"));
|
containsString(AdminPermission.UNREGISTER.getNode() + " (Has permission)"));
|
||||||
assertThat(removeColors(lines.get(3)), containsString("Default: OP's only (You have permission)"));
|
assertThat(removeColors(lines.get(3)), containsString("Default: Op only (Has permission)"));
|
||||||
assertThat(removeColors(lines.get(4)), containsString("Result: You have permission"));
|
assertThat(removeColors(lines.get(4)), containsString("Result: Has permission"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -183,7 +183,7 @@ public class HelpProviderTest {
|
|||||||
assertThat(removeColors(lines.get(1)), containsString("Permissions:"));
|
assertThat(removeColors(lines.get(1)), containsString("Permissions:"));
|
||||||
assertThat(removeColors(lines.get(2)),
|
assertThat(removeColors(lines.get(2)),
|
||||||
containsString(AdminPermission.UNREGISTER.getNode() + " (No permission)"));
|
containsString(AdminPermission.UNREGISTER.getNode() + " (No permission)"));
|
||||||
assertThat(removeColors(lines.get(3)), containsString("Default: OP's only (No permission)"));
|
assertThat(removeColors(lines.get(3)), containsString("Default: Op only (No permission)"));
|
||||||
assertThat(removeColors(lines.get(4)), containsString("Result: No permission"));
|
assertThat(removeColors(lines.get(4)), containsString("Result: No permission"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -365,4 +365,19 @@ public class HelpProviderTest {
|
|||||||
return captor.getAllValues();
|
return captor.getAllValues();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void setDefaultHelpMessages(HelpMessagesService helpMessagesService) {
|
||||||
|
given(helpMessagesService.buildLocalizedDescription(any(CommandDescription.class)))
|
||||||
|
.willAnswer(new ReturnsArgumentAt(0));
|
||||||
|
for (HelpMessageKey key : HelpMessageKey.values()) {
|
||||||
|
String text = key.name().replace("_", " ").toLowerCase();
|
||||||
|
given(helpMessagesService.getMessage(key))
|
||||||
|
.willReturn(text.substring(0, 1).toUpperCase() + text.substring(1));
|
||||||
|
}
|
||||||
|
for (DefaultPermission permission : DefaultPermission.values()) {
|
||||||
|
String text = permission.name().replace("_", " ").toLowerCase();
|
||||||
|
given(helpMessagesService.getMessage(permission))
|
||||||
|
.willReturn(text.substring(0, 1).toUpperCase() + text.substring(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user