summaryrefslogtreecommitdiff
path: root/3rdParty/jargs-1.0/src/test/java/jargs/gnu/test/CustomOptionTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/jargs-1.0/src/test/java/jargs/gnu/test/CustomOptionTestCase.java')
-rw-r--r--3rdParty/jargs-1.0/src/test/java/jargs/gnu/test/CustomOptionTestCase.java71
1 files changed, 71 insertions, 0 deletions
diff --git a/3rdParty/jargs-1.0/src/test/java/jargs/gnu/test/CustomOptionTestCase.java b/3rdParty/jargs-1.0/src/test/java/jargs/gnu/test/CustomOptionTestCase.java
new file mode 100644
index 0000000..336d162
--- /dev/null
+++ b/3rdParty/jargs-1.0/src/test/java/jargs/gnu/test/CustomOptionTestCase.java
@@ -0,0 +1,71 @@
+package gnu.jargs.test;
+
+import jargs.gnu.CmdLineParser;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Locale;
+
+import junit.framework.TestCase;
+
+public class CustomOptionTestCase extends TestCase {
+
+ public CustomOptionTestCase(String name) {
+ super(name);
+ }
+
+ public void testCustomOption() throws Exception {
+ Calendar calendar = Calendar.getInstance();
+ CmdLineParser parser = new CmdLineParser();
+ CmdLineParser.Option date =
+ parser.addOption(new ShortDateOption('d', "date"));
+
+ parser.parse(new String[]{"-d", "11/03/2003"}, Locale.UK);
+ Date d = (Date)parser.getOptionValue(date);
+ calendar.setTime(d);
+ assertEquals(11, calendar.get(Calendar.DAY_OF_MONTH));
+ assertEquals(Calendar.MARCH, calendar.get(Calendar.MONTH));
+ assertEquals(2003, calendar.get(Calendar.YEAR));
+
+ parser.parse(new String[]{"-d", "11/03/2003"}, Locale.US);
+ d = (Date)parser.getOptionValue(date);
+ calendar.setTime(d);
+ assertEquals(3, calendar.get(Calendar.DAY_OF_MONTH));
+ assertEquals(Calendar.NOVEMBER, calendar.get(Calendar.MONTH));
+ assertEquals(2003, calendar.get(Calendar.YEAR));
+ }
+
+ public void testIllegalCustomOption() throws Exception {
+ CmdLineParser parser = new CmdLineParser();
+ CmdLineParser.Option date =
+ parser.addOption(new ShortDateOption('d', "date"));
+ try {
+ parser.parse(new String[]{"-d", "foobar"}, Locale.US);
+ fail("Expected IllegalOptionValueException");
+ }
+ catch (CmdLineParser.IllegalOptionValueException e) {
+ //pass
+ }
+ }
+
+ public static class ShortDateOption extends CmdLineParser.Option {
+ public ShortDateOption( char shortForm, String longForm ) {
+ super(shortForm, longForm, true);
+ }
+ protected Object parseValue( String arg, Locale locale )
+ throws CmdLineParser.IllegalOptionValueException {
+ try {
+ DateFormat dateFormat =
+ DateFormat.getDateInstance(DateFormat.SHORT, locale);
+ return dateFormat.parse(arg);
+ }
+ catch (ParseException e) {
+ throw new CmdLineParser.IllegalOptionValueException(this, arg);
+ }
+ }
+ }
+
+
+}