OSDN Git Service

removed all files
[xerial/xerial-core.git] / src / test / java / org / xerial / util / opt / OptionParserTest.java
diff --git a/src/test/java/org/xerial/util/opt/OptionParserTest.java b/src/test/java/org/xerial/util/opt/OptionParserTest.java
deleted file mode 100755 (executable)
index 940a661..0000000
+++ /dev/null
@@ -1,376 +0,0 @@
-/*--------------------------------------------------------------------------\r
- *  Copyright 2008 Taro L. Saito\r
- *\r
- *  Licensed under the Apache License, Version 2.0 (the "License");\r
- *  you may not use this file except in compliance with the License.\r
- *  You may obtain a copy of the License at\r
- *\r
- *     http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- *  Unless required by applicable law or agreed to in writing, software\r
- *  distributed under the License is distributed on an "AS IS" BASIS,\r
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- *  See the License for the specific language governing permissions and\r
- *  limitations under the License.\r
- *--------------------------------------------------------------------------*/\r
-//--------------------------------------\r
-// XerialJ\r
-//\r
-// OptionParserTest.java\r
-// Since: Oct 28, 2008 4:44:53 PM\r
-//\r
-// $URL: http://www.xerial.org/svn/project/XerialJ/trunk/xerial-core/src/test/java/org/xerial/util/opt/OptionParserTest.java $\r
-// $Author: leo $\r
-//--------------------------------------\r
-package org.xerial.util.opt;\r
-\r
-import static org.junit.Assert.*;\r
-\r
-import java.io.File;\r
-import java.io.StringWriter;\r
-import java.util.List;\r
-\r
-import org.junit.After;\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.xerial.util.log.LogLevel;\r
-import org.xerial.util.log.Logger;\r
-\r
-public class OptionParserTest {\r
-    private static Logger _logger = Logger.getLogger(OptionParserTest.class);\r
-\r
-    @Before\r
-    public void setUp() throws Exception {}\r
-\r
-    @After\r
-    public void tearDown() throws Exception {}\r
-\r
-    class MyOption {\r
-        @Option(symbol = "h", longName = "help", description = "display help message")\r
-        private boolean displayHelp;\r
-\r
-        @Argument(index = 0, required = true)\r
-        private String subCommand;\r
-\r
-        @Argument(name = "input_file", index = 1, required = false)\r
-        private List<String> fileList;\r
-    }\r
-\r
-    @Test\r
-    public void optionBinding() throws OptionParserException {\r
-        MyOption myOption = new MyOption();\r
-        OptionParser parser = new OptionParser(myOption);\r
-\r
-        parser.parse(new String[] { "add", "-h", "1.txt", "2.txt" });\r
-\r
-        assertEquals("add", myOption.subCommand);\r
-        assertTrue(myOption.displayHelp);\r
-        assertNotNull(myOption.fileList);\r
-        assertEquals(2, myOption.fileList.size());\r
-        assertEquals("1.txt", myOption.fileList.get(0));\r
-        assertEquals("2.txt", myOption.fileList.get(1));\r
-\r
-    }\r
-\r
-    @Test\r
-    public void printUsage() {\r
-        MyOption myOption = new MyOption();\r
-        OptionParser parser = new OptionParser(myOption);\r
-\r
-        StringWriter out = new StringWriter();\r
-        parser.printUsage(out);\r
-        String help = out.toString();\r
-        assertTrue(help.length() > 0);\r
-    }\r
-\r
-    @Test\r
-    public void testDuplicatedOptionFlag() {\r
-        try {\r
-            MyOption myOption = new MyOption();\r
-            OptionParser parser = new OptionParser(myOption);\r
-\r
-            parser.parse(new String[] { "-h", "-h" });\r
-\r
-            fail("must detect the presence of duplicated option flags");\r
-        }\r
-        catch (OptionParserException e) {\r
-\r
-        }\r
-    }\r
-\r
-    @Test\r
-    public void testDuplicatedLongOptionFlag() {\r
-        try {\r
-            MyOption myOption = new MyOption();\r
-            OptionParser parser = new OptionParser(myOption);\r
-\r
-            parser.parse(new String[] { "--help", "--help" });\r
-\r
-            fail("must detect the presence of duplicated option flags");\r
-        }\r
-        catch (OptionParserException e) {\r
-\r
-        }\r
-    }\r
-\r
-    @Test\r
-    public void detectMissingArgument() {\r
-        try {\r
-            MyOption myOption = new MyOption();\r
-            OptionParser parser = new OptionParser(myOption);\r
-\r
-            parser.parse(new String[] {});\r
-\r
-            fail("must detect some argument is missing");\r
-        }\r
-        catch (OptionParserException e) {\r
-\r
-        }\r
-\r
-    }\r
-\r
-    @Test\r
-    public void initializeCollectionsInOptionHolder() throws OptionParserException {\r
-        MyOption myOption = new MyOption();\r
-        OptionParser parser = new OptionParser(myOption);\r
-\r
-        parser.parse(new String[] { "add" });\r
-\r
-        assertEquals("add", myOption.subCommand);\r
-        assertFalse(myOption.displayHelp);\r
-        assertNotNull(myOption.fileList);\r
-        assertEquals(0, myOption.fileList.size());\r
-\r
-    }\r
-\r
-    class LoglevelCommand {\r
-        @Option(symbol = "l", longName = "loglevel", varName = "LOG_LEVEL")\r
-        private LogLevel loglevel = LogLevel.INFO;\r
-    }\r
-\r
-    @Test\r
-    public void enumOption() throws OptionParserException {\r
-        LoglevelCommand opt = new LoglevelCommand();\r
-        OptionParser parser = new OptionParser(opt);\r
-        parser.parse(new String[] { "--loglevel=DEBUG" });\r
-\r
-        assertEquals(LogLevel.DEBUG, opt.loglevel);\r
-    }\r
-\r
-    class MultipleName {\r
-        @Option(longName = "name")\r
-        private List<String> name;\r
-    }\r
-\r
-    @Test\r
-    public void mulpleOptionOccurences() throws OptionParserException {\r
-        MultipleName mn = new MultipleName();\r
-        OptionParser parser = new OptionParser(mn);\r
-        parser.parse(new String[] { "--name=leo", "--name=yui" });\r
-\r
-        assertNotNull(mn.name);\r
-        assertEquals(2, mn.name.size());\r
-        assertEquals("leo", mn.name.get(0));\r
-        assertEquals("yui", mn.name.get(1));\r
-    }\r
-\r
-    class IntArg {\r
-        @Option(symbol = "i")\r
-        int num;\r
-\r
-        @Argument(name = "value")\r
-        List<Integer> value;\r
-    }\r
-\r
-    @Test\r
-    public void intArgument() throws OptionParserException {\r
-        IntArg intArg = new IntArg();\r
-        OptionParser parser = new OptionParser(intArg);\r
-\r
-        parser.parse(new String[] { "-i", "3", "1", "4", "10" });\r
-\r
-        assertNotNull(intArg.value);\r
-        assertEquals(3, intArg.num);\r
-        assertEquals(3, intArg.value.size());\r
-        assertEquals(1, intArg.value.get(0).intValue());\r
-        assertEquals(4, intArg.value.get(1).intValue());\r
-        assertEquals(10, intArg.value.get(2).intValue());\r
-\r
-    }\r
-\r
-    class AmbiguousTypeArg {\r
-        @Argument(name = "value")\r
-        List< ? > value;\r
-\r
-        /**\r
-         * for testing purpose, use untyped list\r
-         */\r
-        @SuppressWarnings("unchecked")\r
-        @Option(symbol = "d")\r
-        List d;\r
-    }\r
-\r
-    @Test\r
-    public void ambiguousType() throws OptionParserException {\r
-        AmbiguousTypeArg arg = new AmbiguousTypeArg();\r
-        OptionParser parser = new OptionParser(arg);\r
-\r
-        parser.parse(new String[] { "1", "2", "3", "-d", "5", "-d", "10" });\r
-\r
-        assertNotNull(arg.value);\r
-        assertEquals(3, arg.value.size());\r
-        assertEquals("1", arg.value.get(0));\r
-        assertEquals("2", arg.value.get(1));\r
-        assertEquals("3", arg.value.get(2));\r
-\r
-        assertNotNull(arg.d);\r
-        assertEquals(2, arg.d.size());\r
-        assertEquals("5", arg.d.get(0));\r
-        assertEquals("10", arg.d.get(1));\r
-\r
-    }\r
-\r
-    @Test\r
-    public void detectUnknownOption() {\r
-        MyOption myOption = new MyOption();\r
-        OptionParser parser = new OptionParser(myOption);\r
-\r
-        try {\r
-            parser.parse(new String[] { "-v", "file" });\r
-\r
-            fail("must detect unknown options ");\r
-        }\r
-        catch (OptionParserException e) {\r
-\r
-        }\r
-\r
-    }\r
-\r
-    @Test\r
-    public void ignoreUnknownOption() {\r
-        MyOption myOption = new MyOption();\r
-        OptionParser parser = new OptionParser(myOption);\r
-        parser.setIgnoreUnknownOption(true);\r
-\r
-        try {\r
-            parser.parse(new String[] { "-v", "file" });\r
-\r
-        }\r
-        catch (OptionParserException e) {\r
-            fail("must ignore unknown options ");\r
-        }\r
-\r
-    }\r
-\r
-    class MainCommand {\r
-        @Argument(name = "sub_command")\r
-        String subCommand = null;\r
-    }\r
-\r
-    class SubCommand {\r
-        @Option(symbol = "h", longName = "help")\r
-        boolean displayHelp = false;\r
-\r
-        @Argument(name = "input")\r
-        String input = null;\r
-    }\r
-\r
-    @Test\r
-    public void retrieveUnusedArguments() throws OptionParserException {\r
-        MainCommand mainCommand = new MainCommand();\r
-        OptionParser mainCommandParser = new OptionParser(mainCommand);\r
-        mainCommandParser.setIgnoreUnknownOption(true);\r
-\r
-        mainCommandParser.parse(new String[] { "action", "input.txt", "--help" });\r
-\r
-        String[] subCommandArgs = mainCommandParser.getUnusedArguments();\r
-\r
-        assertEquals(2, subCommandArgs.length);\r
-        assertEquals("input.txt", subCommandArgs[0]);\r
-        assertEquals("--help", subCommandArgs[1]);\r
-\r
-        SubCommand subCommand = new SubCommand();\r
-        OptionParser subCommandParser = new OptionParser(subCommand);\r
-\r
-        subCommandParser.parse(subCommandArgs);\r
-\r
-        assertNotNull(subCommand.input);\r
-        assertEquals("input.txt", subCommand.input);\r
-        assertTrue(subCommand.displayHelp);\r
-    }\r
-\r
-    @Test\r
-    public void getOptionHolderTest() throws Exception {\r
-\r
-        OptionParser mainCommandParser = new OptionParser(new MainCommand());\r
-        mainCommandParser.parse(new String[] { "action" });\r
-        MainCommand mc = mainCommandParser.getOptionHolder();\r
-\r
-        assertEquals("action", mc.subCommand);\r
-\r
-    }\r
-\r
-    static class MyOpt {\r
-        @Option(symbol = "v", longName = "value", description = "integer value")\r
-        int value = -1;\r
-    }\r
-\r
-    @Test\r
-    public void errorMessage() throws Exception {\r
-        OptionParser p = new OptionParser(MyOpt.class);\r
-        try {\r
-            p.parse(new String[] { "-v", "abc" }); // use wrong type\r
-        }\r
-        catch (OptionParserException e) {\r
-            _logger.debug(e);\r
-            assertTrue(String.format(\r
-                    "error message must explain which option argument causes the error: %s", e\r
-                            .getMessage()), e.getMessage().contains("-v"));\r
-            return;\r
-        }\r
-        fail("cannot reach here");\r
-\r
-    }\r
-\r
-    static class FileOpt {\r
-        @Option(symbol = "o", description = "file name")\r
-        File f;\r
-\r
-        @Argument\r
-        File input;\r
-    }\r
-\r
-    @Test\r
-    public void fileType() throws Exception {\r
-        FileOpt o = new FileOpt();\r
-        OptionParser opt = new OptionParser(o);\r
-        opt.parse(new String[] { "-o", "output.txt", "input.xml" });\r
-\r
-        assertEquals(new File("output.txt").getPath(), o.f.getPath());\r
-        assertEquals(new File("input.xml").getPath(), o.input.getPath());\r
-    }\r
-\r
-    static class OptWithSubCommand {\r
-        @Option(symbol = "o")\r
-        String globalOpt = null;\r
-\r
-        @Argument\r
-        String subcommand;\r
-    }\r
-\r
-    @Test\r
-    public void splitArguments() throws Exception {\r
-        OptionParser opt = new OptionParser(OptWithSubCommand.class);\r
-        opt.parseUntilTheFirstArgument(new String[] { "-o", "globalOpt", "subcommand", "-w",\r
-                "hello" });\r
-        OptWithSubCommand h = opt.getOptionHolder();\r
-        String[] tail = opt.getUnusedArguments();\r
-        assertEquals(2, tail.length);\r
-        assertEquals("-w", tail[0]);\r
-        assertEquals("hello", tail[1]);\r
-\r
-        assertEquals("globalOpt", h.globalOpt);\r
-\r
-    }\r
-\r
-}\r