Improved generics usage.
[svjatoslav_commons.git] / src / test / java / eu / svjatoslav / commons / commandline / parameterparser / ParserTest.java
index 330eb18..5df31b9 100755 (executable)
@@ -9,10 +9,15 @@
 
 package eu.svjatoslav.commons.commandline.parameterparser;
 
+import eu.svjatoslav.commons.commandline.parameterparser.parameter.FileParameter;
 import eu.svjatoslav.commons.commandline.parameterparser.parameter.StringParameter;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+
 import static org.junit.Assert.*;
 
 public class ParserTest {
@@ -25,31 +30,44 @@ public class ParserTest {
     }
 
     @Test
-    public void testParse() {
+    public void testParse() throws IOException {
 
         // define allowed parameters
-        final StringParameter helpParameter = parser
-                .add(new StringParameter("Show help screen"))
-                .addAliases("--help", "-h").setMandatory();
+        final StringParameter helpParameter = parser.add(new StringParameter("Show help screen")
+                        .addAliases("--help", "-h").setMandatory());
+
+        final StringParameter compileParameter = parser.add(new StringParameter("Compile code"))
+                .addAliases("--compile", "-c");
+
+        FileParameter fileParameter = parser.add(new FileParameter("Input file")
+                .addAliases("-i").mustExist());
 
-        final StringParameter compileParameter = parser.add(
-                new StringParameter("Compile code")).addAliases("--compile",
-                "-c");
+        createTemporaryFile();
 
         // check help generation
         parser.showHelp();
 
         // parse arguments
-        parser.parse(new String[]{"--help", "section"});
+        parser.parse(new String[]{"--help", "section", "-i", "/tmp/file with spaces"});
 
         // --help was in the arguments
-        assertTrue(helpParameter.isParameterSpecified());
+        assertTrue(helpParameter.isSpecified());
 
         // compile was not present
-        assertFalse(compileParameter.isParameterSpecified());
+        assertFalse(compileParameter.isSpecified());
 
         // validate that help argument was "section"
         assertEquals("section", helpParameter.getValue());
 
+        assertTrue(fileParameter.isSpecified());
+        assertEquals("/tmp/file with spaces", fileParameter.getValue().getAbsolutePath());
+
+    }
+
+    private void createTemporaryFile() throws IOException {
+        File fileWithSpaces = new File("/tmp/file with spaces");
+        FileWriter writer = new FileWriter(fileWithSpaces);
+        writer.write("test");
+        writer.close();
     }
 }