コード例 #1
0
        public void ArgumentParseTest()
        {
            var env       = new ConsoleEnvironment(seed: 42);
            var innerArg1 = new SimpleArg()
            {
                required = -2,
                text1    = "}",
                text2    = "{",
                text3    = "  ",
                text4    = "\n",
            };

            var innerArg2 = new SimpleArg()
            {
                required = -2,
                text1    = "{!@# $%^}&*{()}",
                text2    = "=",
                text3    = "\t",
                text4    = @"\\",
            };

            var innerArg3 = new SimpleArg()
            {
                required = -2,
                text1    = "\r\n",
                text2    = "\"",
                text3    = "\" \" ",
                text4    = "{/a=2 /b=3 /c=4}",
                sub1     = CreateComponentFactory("S1", innerArg1.ToString(env)),
                sub2     = CreateComponentFactory("S2", innerArg2.ToString(env)),
            };

            var outerArg1 = new SimpleArg()
            {
                required = -2,
                once     = 2,
                text2    = "Testing",
                text3    = "a=7",
                sub1     = CreateComponentFactory("S1", innerArg1.ToString(env)),
                sub2     = CreateComponentFactory("S2", innerArg2.ToString(env)),
                sub3     = CreateComponentFactory("S3", innerArg3.ToString(env)),
            };

            var testArg = new SimpleArg();

            CmdParser.ParseArguments(env, outerArg1.ToString(env), testArg);
            Assert.Equal(outerArg1, testArg);

            CmdParser.ParseArguments(env, ((ICommandLineComponentFactory)outerArg1.sub1).GetSettingsString(), testArg = new SimpleArg());
            Assert.Equal(innerArg1, testArg);

            CmdParser.ParseArguments(env, ((ICommandLineComponentFactory)outerArg1.sub2).GetSettingsString(), testArg = new SimpleArg());
            Assert.Equal(innerArg2, testArg);

            CmdParser.ParseArguments(env, ((ICommandLineComponentFactory)outerArg1.sub3).GetSettingsString(), testArg = new SimpleArg());
            Assert.Equal(innerArg3, testArg);
        }
コード例 #2
0
        public void ArgumentParseTest()
        {
            var env       = new TlcEnvironment(seed: 42);
            var innerArg1 = new SimpleArg()
            {
                required = -2,
                text1    = "}",
                text2    = "{",
                text3    = "  ",
                text4    = "\n",
            };

            var innerArg2 = new SimpleArg()
            {
                required = -2,
                text1    = "{!@# $%^}&*{()}",
                text2    = "=",
                text3    = "\t",
                text4    = @"\\",
            };

            var innerArg3 = new SimpleArg()
            {
                required = -2,
                text1    = "\r\n",
                text2    = "\"",
                text3    = "\" \" ",
                text4    = "{/a=2 /b=3 /c=4}",
                sub1     = new SubComponent("S1", innerArg1.ToString(env)),
                sub2     = new SubComponent("S2", innerArg2.ToString(env)),
            };

            var outerArg1 = new SimpleArg()
            {
                required = -2,
                once     = 2,
                text2    = "Testing",
                text3    = "a=7",
                sub1     = new SubComponent("S1", innerArg1.ToString(env)),
                sub2     = new SubComponent("S2", innerArg2.ToString(env)),
                sub3     = new SubComponent("S3", innerArg3.ToString(env)),
            };

            var testArg = new SimpleArg();

            CmdParser.ParseArguments(env, outerArg1.ToString(env), testArg);
            Assert.Equal(innerArg1, testArg);

            CmdParser.ParseArguments(env, outerArg1.sub1.SubComponentSettings, testArg = new SimpleArg());
            Assert.Equal(innerArg1, testArg);

            CmdParser.ParseArguments(env, outerArg1.sub1.Settings[0], testArg = new SimpleArg());
            Assert.Equal(innerArg1, testArg);

            CmdParser.ParseArguments(env, CmdParser.CombineSettings(outerArg1.sub1.Settings), testArg = new SimpleArg());
            Assert.Equal(innerArg1, testArg);

            CmdParser.ParseArguments(env, outerArg1.sub2.SubComponentSettings, testArg = new SimpleArg());
            Assert.Equal(innerArg2, testArg);

            CmdParser.ParseArguments(env, outerArg1.sub3.SubComponentSettings, testArg = new SimpleArg());
            Assert.Equal(innerArg3, testArg);
        }