From fb38f40b769781cb2cd00763865bc0aef59f392a Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Wed, 2 May 2012 11:52:39 -0700 Subject: Fixed: bug with several multiple arity parameters (VariableArityTest). --- .../com/beust/jcommander/VariableArityTest.java | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/test/java/com/beust/jcommander/VariableArityTest.java (limited to 'src/test/java/com/beust/jcommander/VariableArityTest.java') diff --git a/src/test/java/com/beust/jcommander/VariableArityTest.java b/src/test/java/com/beust/jcommander/VariableArityTest.java new file mode 100644 index 0000000..a90392f --- /dev/null +++ b/src/test/java/com/beust/jcommander/VariableArityTest.java @@ -0,0 +1,66 @@ +package com.beust.jcommander; + +import org.testng.Assert; +import org.testng.annotations.Test; + +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +public class VariableArityTest { + + public static class ModelGenerationConfig { + + @Parameter(names = { "-m", "--matrixData" }, variableArity = true, + description = "File containing a list of instances and their runtimes on various configurations", required = false) + public List modelMatrixFile = new LinkedList(); + + @Parameter(names = { "-f", "--featureData" }, variableArity = true, + description = "File containing a list of instances and their corresponding features", required = true) + public List featureFile = new LinkedList(); + + @Parameter(names = { "-c", "--configData" }, variableArity = true, + description = "File containing a list of configuration parameter values") + public List configFile = new LinkedList(); + + @Parameter(names = { "-o", "--outputFile" }, + description = "File to output the resulting data to. Defaults to ./matrix-generation.zip", required = false) + public String outputFile = "matrix-generation.zip"; + + @Parameter(names = { "--seed" }, description = "Seed used for PRNG [0 means don't use a Seed]") + public long seed = 0; + + public void print() { + System.out.println("modelMatrixFile: " + modelMatrixFile); + System.out.println("featureData: " + featureFile); + System.out.println("configFile: " + configFile); + System.out.println("output: " + outputFile); + System.out.println("seed: " + seed); + + } + } + + @Test + public void verifyVariableArity() { + String input = "-m foo --seed 1024 -c foo -o foo -f foo "; + + String[] split = input.split("\\s+"); + + ModelGenerationConfig config = new ModelGenerationConfig(); + JCommander com = new JCommander(config); + com.setProgramName("modelgen"); + + com.parse(split); + +// config.print(); + Assert.assertNotEquals(config.seed, 0); + Assert.assertEquals(config.modelMatrixFile, Arrays.asList(new String[] { "foo" })); + Assert.assertEquals(config.featureFile, Arrays.asList(new String[] { "foo" })); + Assert.assertEquals(config.seed, 1024); + Assert.assertEquals(config.outputFile, "foo"); + } + + public static void main(String[] args) { + new VariableArityTest().verifyVariableArity(); + } +} \ No newline at end of file -- cgit v1.2.3