Browse Source

Adopt LanguageOptionTest

Dominik Fuchß 4 years ago
parent
commit
d031d23b08
1 changed files with 37 additions and 0 deletions
  1. 37 0
      jplag.cli/src/test/java/de/jplag/cli/LanguageTest.java

+ 37 - 0
jplag.cli/src/test/java/de/jplag/cli/LanguageTest.java

@@ -0,0 +1,37 @@
+package de.jplag.cli;
+
+import static com.github.stefanbirkner.systemlambda.SystemLambda.catchSystemExit;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.jupiter.api.Test;
+
+import de.jplag.CommandLineArgument;
+import de.jplag.Language;
+import de.jplag.LanguageLoader;
+import de.jplag.options.JPlagOptions;
+
+class LanguageTest extends CommandLineInterfaceTest {
+
+    @Test
+    void testDefaultLanguage() {
+        buildOptionsFromCLI(CURRENT_DIRECTORY);
+        assertEquals(JPlagOptions.DEFAULT_LANGUAGE, options.getLanguageShortName());
+    }
+
+    @Test
+    void testInvalidLanguage() throws Exception {
+        String argument = buildArgument(CommandLineArgument.LANGUAGE, "Piet");
+        int statusCode = catchSystemExit(() -> buildOptionsFromCLI(argument, CURRENT_DIRECTORY));
+        assertEquals(1, statusCode);
+    }
+
+    @Test
+    void testValidLanguages() {
+        for (Language language : LanguageLoader.loadLanguages()) {
+            String argument = buildArgument(CommandLineArgument.LANGUAGE, language.getShortName());
+            buildOptionsFromCLI(argument, CURRENT_DIRECTORY);
+            assertEquals(language.getShortName(), options.getLanguageShortName());
+        }
+    }
+
+}