mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-11-09 12:10:56 +01:00
#566 Test that all message files are valid YAML
This commit is contained in:
parent
2de3848cc3
commit
4634213d75
@ -0,0 +1,75 @@
|
|||||||
|
package fr.xephi.authme.output;
|
||||||
|
|
||||||
|
import fr.xephi.authme.TestHelper;
|
||||||
|
import fr.xephi.authme.util.StringUtils;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests that all YML message files can be loaded.
|
||||||
|
*/
|
||||||
|
public class MessagesFileYamlCheckerTest {
|
||||||
|
|
||||||
|
/** Path in the resources folder where the message files are located. */
|
||||||
|
private static final String MESSAGES_FOLDER = "/messages/";
|
||||||
|
/** Pattern of the message file names. */
|
||||||
|
private static final Pattern MESSAGE_FILE_PATTERN = Pattern.compile("messages_\\w+\\.yml");
|
||||||
|
/** Message key that is present in all files. Used to make sure that text is returned. */
|
||||||
|
private static final MessageKey MESSAGE_KEY = MessageKey.LOGIN_MESSAGE;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldAllBeValidYaml() {
|
||||||
|
// given
|
||||||
|
List<File> messageFiles = getMessageFiles();
|
||||||
|
|
||||||
|
// when
|
||||||
|
List<String> errors = new ArrayList<>();
|
||||||
|
for (File file : messageFiles) {
|
||||||
|
String error = null;
|
||||||
|
try {
|
||||||
|
YamlConfiguration configuration = YamlConfiguration.loadConfiguration(file);
|
||||||
|
if (StringUtils.isEmpty(configuration.getString(MESSAGE_KEY.getKey()))) {
|
||||||
|
error = "Message for '" + MESSAGE_KEY + "' is empty";
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
error = "Could not load file: " + StringUtils.formatException(e);
|
||||||
|
}
|
||||||
|
if (!StringUtils.isEmpty(error)) {
|
||||||
|
errors.add(file.getName() + ": " + error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// then
|
||||||
|
if (!errors.isEmpty()) {
|
||||||
|
fail("Errors during verification of message files:\n-" + StringUtils.join("\n-", errors));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<File> getMessageFiles() {
|
||||||
|
File folder = TestHelper.getJarFile(MESSAGES_FOLDER);
|
||||||
|
File[] files = folder.listFiles();
|
||||||
|
if (files == null) {
|
||||||
|
throw new IllegalStateException("Could not read folder '" + folder.getName() + "'");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<File> messageFiles = new ArrayList<>();
|
||||||
|
for (File file : files) {
|
||||||
|
if (MESSAGE_FILE_PATTERN.matcher(file.getName()).matches()) {
|
||||||
|
messageFiles.add(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (messageFiles.isEmpty()) {
|
||||||
|
throw new IllegalStateException("Error getting message files: list of files is empty");
|
||||||
|
}
|
||||||
|
return messageFiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user