/** * CommandLineParserTest.java * * Copyright 2005 by Entwine * Zurich, Switzerland (CH) * All rights reserved. * * This software is confidential and proprietary information ("Confidential * Information"). You shall not disclose such Confidential Information and shall * use it only in accordance with the terms of the license agreement you entered * into. */ package ch.entwine.weblounge.tools.util; import ch.entwine.weblounge.tools.util.CommandLineParser; import junit.framework.TestCase; /** * Test class for the command line parser. * * @author Tobias Wunden * @version 1.0 */ public class CommandLineParserTest extends TestCase { /** The command line parser */ private CommandLineParser parser; public static void main(String[] args) { junit.textui.TestRunner.run(CommandLineParserTest.class); } /* * @see TestCase#setUp() */ protected void setUp() throws Exception { super.setUp(); parser = new CommandLineParser(); parser.defineCommand("unmerge"); parser.defineCommand(new String[] {"u", "update"}); parser.defineCommand(new String[] {"v", "verbose"}); parser.defineCommand(new String[] {"p", "pretend"}); parser.defineOption("m"); parser.defineOption(new String[] {"n", "number"}); parser.defineRequiredOption(new String[] {"s", "scope"}); parser.defineOption(new String[] {"t", "type"}); } public final void testRequiredOption() { try { parser.parse(new String[] {"--type=5"}); fail("Missing required option 's' not detected"); } catch (Exception e) { } parser.reset(); } /* * Class under test for boolean hasOption(String) */ public final void testProvidesOptionString() { parser.parse(new String[] {"--scope=5"}); if (!parser.providesOption("s") || !parser.providesOption("scope")) { fail(); } parser.reset(); } /* * Class under test for boolean hasOption(String[]) */ public final void testProvidesOptionStringArray() { parser.parse(new String[] {"--scope=5"}); if (!parser.providesOption(new String[] {"s", "scope"})) { fail(); } parser.reset(); } /* * Class under test for String getOption(String) */ public final void testGetOptionString() { parser.parse(new String[] {"--scope=5"}); if (!"5".equals(parser.getOption("s")) || !"5".equals(parser.getOption("scope"))) { fail(); } parser.reset(); } /* * Class under test for String getOption(String, String) */ public final void testGetOptionStringString() { parser.parse(new String[] {"--scope=5"}); if (!"5".equals(parser.getOption("s", "6")) || !"6".equals(parser.getOption("t", "6"))) { fail(); } parser.reset(); } /* * Class under test for String getOption(String[]) */ public final void testGetOptionStringArray() { parser.parse(new String[] {"--scope=5"}); if (!"5".equals(parser.getOption(new String[] {"s", "scope"}))) { fail(); } parser.reset(); } /* * Class under test for String getOption(String[], String) */ public final void testGetOptionStringArrayString() { parser.parse(new String[] {"--scope=5"}); if (!"5".equals(parser.getOption(new String[] {"s", "scope"})) || !"6".equals(parser.getOption(new String[] {"t", "type"}, "6"))) { fail(); } parser.reset(); } /* * Class under test for boolean hasCommand(String) */ public final void testProvidesCommandString() { parser.parse(new String[] {"-u", "--scope=5"}); if (!parser.providesCommand("u") || !parser.providesCommand("update")) { fail(); } parser.reset(); } /* * Class under test for boolean hasCommand(String[]) */ public final void testProvidesCommandStringArray() { parser.parse(new String[] {"-u", "--scope=5"}); if (!parser.providesCommand(new String[] {"u", "update"})) { fail(); } parser.reset(); } public final void testParse() { try { parser.parse(new String[] {"unmerge", "-s", "5"}); parser.reset(); parser.parse(new String[] {"unmerge", "-s", "5", "-u"}); parser.reset(); parser.parse(new String[] {"unmerge", "-s", "5", "u"}); parser.reset(); parser.parse(new String[] {"unmerge", "-s", "5", "-uvp"}); parser.reset(); parser.parse(new String[] {"unmerge", "-s", "5", "uvp"}); parser.reset(); parser.parse(new String[] {"unmerge", "--scope"}); parser.reset(); parser.parse(new String[] {"unmerge", "--scope=5"}); parser.reset(); } catch (IllegalArgumentException e) { fail(e.getMessage()); } } }