public void TestFileAndDirectory()
        {
            var result = CommandSerializer <FileAndDirectoryTest> .Parse(new[] { "--file", "toto.txt", "--directory", "foo/bar" });

            Assert.IsFalse(result.File.Exists);
            Assert.IsFalse(result.Directory.Exists);
        }
 public void TestInvalidMultipleAlias()
 {
     Assert.Throws <CommandArgumentException>(delegate
     {
         CommandSerializer <AliasesTest> .Parse(new[] { "-stv", "test" });
     });
 }
 public void TestNonExistingAction()
 {
     Assert.Throws <CommandArgumentException>(delegate
     {
         CommandSerializer <AliasTest> .Parse(new[] { "--aaa" });
     });
 }
        public void TestActionsWithInputStrings()
        {
            var result = CommandSerializer <ActionsTestWithInputString> .Parse(new[] { "--name", "foo", "--password", "bar" });

            Assert.AreEqual("foo", result.Name);
            Assert.AreEqual("bar", result.Password);
        }
        public void TestDate()
        {
            var date   = "2018-08-18T07:22:16.0000000Z";
            var result = CommandSerializer <DateTest> .Parse(new[] { "--date", date });

            Assert.AreEqual(DateTime.Parse(date), result.Date);
        }
 public void TestRequiredPositionalArgs()
 {
     Assert.Throws <CommandArgumentException>(delegate
     {
         CommandSerializer <PositionalRequiredTest> .Parse(new string[] { });
     });
 }
 public void TestActionsWithMissingParameter()
 {
     Assert.Throws <CommandArgumentException>(delegate
     {
         CommandSerializer <ActionsTestWithInputString> .Parse(new[] { "--name", "foo", "--password" });
     });
 }
        public void TestAliases()
        {
            var result = CommandSerializer <AliasesTest> .Parse(new[] { "-sS" });

            Assert.IsTrue(result.Set1);
            Assert.IsTrue(result.Set2);
            Assert.IsFalse(result.Set3);
        }
        public void TestActions()
        {
            var result = CommandSerializer <ActionsTest> .Parse(new[] { "--set1", "--set2" });

            Assert.IsTrue(result.Set1);
            Assert.IsTrue(result.Set2);
            Assert.IsFalse(result.Set3);
        }
        public void TestList()
        {
            var result = CommandSerializer <ListTest> .Parse(new[] { "-c", "red", "green", "blue" });

            Assert.AreEqual(3, result.Color.Count);
            Assert.AreEqual("red", result.Color[0]);
            Assert.AreEqual("green", result.Color[1]);
            Assert.AreEqual("blue", result.Color[2]);
        }
        public void TestArray()
        {
            var result = CommandSerializer <ArrayTest> .Parse(new[] { "--array", "1", "2", "100" });

            Assert.AreEqual(3, result.Numbers.Length);
            Assert.AreEqual(1, result.Numbers[0]);
            Assert.AreEqual(2, result.Numbers[1]);
            Assert.AreEqual(100, result.Numbers[2]);
        }
        public void TestBasicClass()
        {
            var result = CommandSerializer <BasicClassTest> .Parse(new[] { "--isCar", "--wheelCount", "4", "--Colors", "red", "black" });

            Assert.IsTrue(result.IsCar);
            Assert.AreEqual(4, result.WheelCount);
            Assert.AreEqual(2, result.Colors.Count);
            Assert.AreEqual("red", result.Colors[0]);
            Assert.AreEqual("black", result.Colors[1]);
        }
        public void TestPositionalArgs()
        {
            var result = CommandSerializer <PositionalTest> .Parse(new[] { "blue", "-a", "foo", "bar", "2000" });

            Assert.IsTrue(result.IsAutomatic);
            Assert.AreEqual("blue", result.Color);
            Assert.AreEqual(3, result.Features.Count);
            Assert.AreEqual("foo", result.Features[0]);
            Assert.AreEqual("bar", result.Features[1]);
            Assert.AreEqual("2000", result.Features[2]);
        }
Ejemplo n.º 14
0
        static void Main(string[] args)
        {
            try
            {
                var options = CommandSerializer <CommandArgs> .Parse(args);

                options.Validate();

                try
                {
                    var parser = new ConsoleParser();
                    parser.Init(options.Countries);
                    var listOption     = options.Recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;
                    var files          = (from file in Directory.EnumerateFiles(options.Input, "*.*", listOption) select file).ToList();
                    var remainingFiles = parser.Filter(files);

                    if (options.Help)
                    {
                        Console.Out.WriteLine(CommandSerializer <CommandArgs> .GetHelp(Console.WindowWidth));
                    }
                    else if (options.Stats)
                    {
                        Console.Out.WriteLine(options.GetSummary(files, remainingFiles));
                    }
                    else
                    {
                        Copy(remainingFiles, options);
                    }
                }
                catch (Exception ex)
                {
                    Console.Out.WriteLine(ex);
                }
            }
            catch (Exception)
            {
                Console.Out.WriteLine(CommandSerializer <CommandArgs> .GetHelp(Console.WindowWidth));
            }
        }
        public void TestRequired()
        {
            var result = CommandSerializer <RequiredTest> .Parse(new[] { "--name", "foo", "-v" });

            Assert.AreEqual("foo", result.Name);
            Assert.IsTrue(result.IsValid);

            Assert.Throws <CommandArgumentException>(delegate
            {
                CommandSerializer <RequiredTest> .Parse(new string[] { });
            });

            Assert.Throws <CommandArgumentException>(delegate
            {
                CommandSerializer <RequiredTest> .Parse(new[] { "-v" });
            });

            Assert.Throws <CommandArgumentException>(delegate
            {
                CommandSerializer <RequiredTest> .Parse(new[] { "--name", "foo" });
            });
        }
        public void TestAlias()
        {
            var result = CommandSerializer <AliasTest> .Parse(new[] { "-s" });

            Assert.IsTrue(result.IsSet);
        }
        public void TestActionNameInsensitive()
        {
            var result = CommandSerializer <ActionTest> .Parse(new[] { "--SET-ME" });

            Assert.IsTrue(result.IsSet);
        }
        public void TestAction()
        {
            var result = CommandSerializer <ActionTest> .Parse(new[] { "--set-me" });

            Assert.IsTrue(result.IsSet);
        }
        public void TestConverter()
        {
            var result = CommandSerializer <ConverterTest> .Parse(new[] { "-c", "blue" });

            Assert.AreEqual(result.Color, Color.Blue);
        }
        public void TestEnum()
        {
            var result = CommandSerializer <EnumTest> .Parse(new[] { "--color", "blue" });

            Assert.AreEqual(EnumTest.Color.Blue, result.Col);
        }