summaryrefslogtreecommitdiffstats
path: root/args4j/args4j/test/org/kohsuke/args4j/AtOptionTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'args4j/args4j/test/org/kohsuke/args4j/AtOptionTest.java')
-rw-r--r--args4j/args4j/test/org/kohsuke/args4j/AtOptionTest.java90
1 files changed, 90 insertions, 0 deletions
diff --git a/args4j/args4j/test/org/kohsuke/args4j/AtOptionTest.java b/args4j/args4j/test/org/kohsuke/args4j/AtOptionTest.java
new file mode 100644
index 0000000..8b5d863
--- /dev/null
+++ b/args4j/args4j/test/org/kohsuke/args4j/AtOptionTest.java
@@ -0,0 +1,90 @@
+package org.kohsuke.args4j;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Arrays;
+
+/**
+ * Tests the AT sign that reads options from an external file.
+ * @author Stephan Fuhrmann
+ */
+public class AtOptionTest extends Args4JTestBase<AtOption> {
+ @Override
+ public AtOption getTestObject() {
+ return new AtOption();
+ }
+
+ public void testSimpleAt() throws IOException, CmdLineException {
+
+ File tmp = File.createTempFile("atoption", null);
+ PrintWriter printWriter = new PrintWriter(tmp);
+ printWriter.println("-string\nfoo");
+ printWriter.close();
+
+ args = new String[]{"@"+tmp.getAbsolutePath()};
+ parser.parseArgument(args);
+
+ assertEquals("foo", testObject.str);
+ assertNull(testObject.noUsage);
+ assertNull(testObject.arguments);
+
+ tmp.delete();
+ }
+
+ public void testAtAfterOpts() throws IOException, CmdLineException {
+
+ File tmp = File.createTempFile("atoption", null);
+ PrintWriter printWriter = new PrintWriter(tmp);
+ printWriter.println("-string\nfoo");
+ printWriter.close();
+
+ args = new String[]{"-noUsage","lala", "@"+tmp.getAbsolutePath()};
+ parser.parseArgument(args);
+
+ assertEquals("foo", testObject.str);
+ assertEquals("lala", testObject.noUsage);
+ assertNull(testObject.arguments);
+
+ tmp.delete();
+ }
+
+ public void testAtBeforeOpts() throws IOException, CmdLineException {
+
+ File tmp = File.createTempFile("atoption", null);
+ PrintWriter printWriter = new PrintWriter(tmp);
+ printWriter.println("-string\nfoo");
+ printWriter.close();
+
+ args = new String[]{"@"+tmp.getAbsolutePath(), "-noUsage","lala"};
+ parser.parseArgument(args);
+
+ assertEquals("foo", testObject.str);
+ assertEquals("lala", testObject.noUsage);
+ assertNull(testObject.arguments);
+
+ tmp.delete();
+ }
+
+ public void testAtOptsWithBeingDisabled() throws IOException, CmdLineException {
+
+ parser.getProperties().withAtSyntax(false);
+
+ File tmp = File.createTempFile("atoption", null);
+ PrintWriter printWriter = new PrintWriter(tmp);
+ printWriter.println("-string\nfoo");
+ printWriter.close();
+
+ // this time the @-option gets not interpreted because
+ // it's disabled
+ args = new String[]{"-noUsage", "foo", "@"+tmp.getAbsolutePath()};
+ parser.parseArgument(args);
+
+ assertEquals("default", testObject.str);
+ assertEquals("foo", testObject.noUsage);
+ assertEquals(Arrays.asList(new String[] {"@"+tmp.getAbsolutePath()}),
+ Arrays.asList(testObject.arguments));
+
+ tmp.delete();
+ }
+}