LanguageTest.java 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package de.jplag.cli;
  2. import static com.github.stefanbirkner.systemlambda.SystemLambda.catchSystemExit;
  3. import static org.junit.jupiter.api.Assertions.assertEquals;
  4. import org.junit.jupiter.api.Assertions;
  5. import org.junit.jupiter.api.Test;
  6. import de.jplag.CommandLineArgument;
  7. import de.jplag.Language;
  8. import de.jplag.LanguageLoader;
  9. class LanguageTest extends CommandLineInterfaceTest {
  10. @Test
  11. void testDefaultLanguage() {
  12. buildOptionsFromCLI(CURRENT_DIRECTORY);
  13. assertEquals(CommandLineArgument.DEFAULT_LANGUAGE_IDENTIFIER, options.getLanguageIdentifier());
  14. }
  15. @Test
  16. void testInvalidLanguage() throws Exception {
  17. String argument = buildArgument(CommandLineArgument.LANGUAGE, "Piet");
  18. int statusCode = catchSystemExit(() -> buildOptionsFromCLI(argument, CURRENT_DIRECTORY));
  19. assertEquals(1, statusCode);
  20. }
  21. @Test
  22. void testLoading() {
  23. var languages = LanguageLoader.getAllAvailableLanguages();
  24. Assertions.assertEquals(13, languages.size(), "Loaded Languages: " + languages.keySet());
  25. }
  26. @Test
  27. void testValidLanguages() {
  28. for (Language language : LanguageLoader.getAllAvailableLanguages().values()) {
  29. String argument = buildArgument(CommandLineArgument.LANGUAGE, language.getIdentifier());
  30. buildOptionsFromCLI(argument, CURRENT_DIRECTORY);
  31. assertEquals(language.getIdentifier(), options.getLanguageIdentifier());
  32. }
  33. }
  34. }