/* * Copyright (C) 2012 Intel Corporation * All rights reserved. */ package test.console; import com.intel.dcsg.cpg.console.ExtendedOptions; import java.util.HashMap; import java.util.Set; import org.apache.commons.configuration.Configuration; import org.junit.Test; import static org.junit.Assert.*; /** * * @author jbuhacoff */ public class TestParseOptions { @Test public void testParseExtendedOptions() { String[] args = new String[] { "arg1", "arg2", "--option1=value1", "arg3", "--option2=value2", "arg4", "--option3", "--no-option4", "arg5", "--", "verbatim-arg6", "--verbatim-arg7", "--verbatim=arg8" }; ExtendedOptions getopt = new ExtendedOptions(args); String[] expectedArgs = new String[] { "arg1", "arg2", "arg3", "arg4", "arg5", "verbatim-arg6", "--verbatim-arg7", "--verbatim=arg8" }; HashMap<String,String> expectedOpts = new HashMap<String,String>(); expectedOpts.put("option1", "value1"); expectedOpts.put("option2", "value2"); expectedOpts.put("option3", "true"); expectedOpts.put("option4", "false"); String[] actualArgs = getopt.getArguments(); assertEquals(expectedArgs.length, actualArgs.length); for(int i=0; i<expectedArgs.length; i++) { assertEquals(expectedArgs[i], actualArgs[i]); } Set<String> optNames = expectedOpts.keySet(); Configuration actualOpts = getopt.getOptions(); for(String optName : optNames) { assertEquals(expectedOpts.get(optName), actualOpts.getString(optName)); } } @Test public void testParseExtendedOptionsErrors() { String[] args = new String[] { "arg1", "--option1=", "--=value1", "--=", "arg2" }; ExtendedOptions getopt = new ExtendedOptions(args); String[] expectedArgs = new String[] { "arg1", "arg2" }; HashMap<String,String> expectedOpts = new HashMap<String,String>(); expectedOpts.put("option1", ""); String[] actualArgs = getopt.getArguments(); assertEquals(expectedArgs.length, actualArgs.length); for(int i=0; i<expectedArgs.length; i++) { assertEquals(expectedArgs[i], actualArgs[i]); } Set<String> optNames = expectedOpts.keySet(); Configuration actualOpts = getopt.getOptions(); for(String optName : optNames) { assertEquals(expectedOpts.get(optName), actualOpts.getString(optName)); } } }