Exemplo n.º 1
0
        public void can_generate_info_text_from_assembly_attributes()
        {
            var simple = new SimpleCli();
            var asm = Assembly.GetExecutingAssembly();


            var expected = @"cliparse.test 0.15.0.0
Gary Kenneally (@SecretDeveloper) [2015]
Description:
    This assembly contains the unit tests for the cliparse library.    

Syntax:
The following argument prefix characters can be used: '-','/'
    --x,     
        
        [Optional], Default:''
        
    --Fieldb, -b    
        
        [Optional], Default:''
        -b 'this is an example usage'
    --Fieldc, -c    
        
        [Optional], Default:'defaultValue'
        
    --Flage, -e    
        
        [Optional], Default:''
        
    --Fieldf, -f    
        
        [Optional], Default:'22'
        
    --verbose, -v    
        
        [Optional], Default:''
        
    --add, -a    
        
        [Optional], Default:''
        
    --all, -A    
        
        [Optional], Default:''
        
    --delete, -d    
        
        [Optional], Default:''
        
    --detailed, -D    
        
        [Optional], Default:''
        

Footer Content
";

            var actual = simple.GetHelpInfoFromAssembly(asm);
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 2
0
        public void can_generate_info_text_from_parsable_attributes()
        {
            var simple = new SimpleCli();

            var expected = @"Simple CLI Test Class 

Description:
    This is a description.    

Syntax:
The following argument prefix characters can be used: '-','/'
    --x,     
        
        [Optional], Default:''
        
    --Fieldb, -b    
        
        [Optional], Default:''
        -b 'this is an example usage'
    --Fieldc, -c    
        
        [Optional], Default:'defaultValue'
        
    --Flage, -e    
        
        [Optional], Default:''
        
    --Fieldf, -f    
        
        [Optional], Default:'22'
        
    --verbose, -v    
        
        [Optional], Default:''
        
    --add, -a    
        
        [Optional], Default:''
        
    --all, -A    
        
        [Optional], Default:''
        
    --delete, -d    
        
        [Optional], Default:''
        
    --detailed, -D    
        
        [Optional], Default:''
        

This is the footer text.
";

            var actual = simple.GetHelpInfo();
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 3
0
        public void can_handle_flags()
        {
            var args = NativeMethods.CommandLineToArgs("/e");
            var simple = new SimpleCli();
            var result = simple.CliParse(args);

            Assert.AreEqual(true, result.Successful);
            Assert.AreEqual(0, result.CliParseMessages.ToList().Count);
            Assert.AreEqual(false, result.ShowHelp);
            Assert.AreEqual(true, simple.Flage);
        }
Exemplo n.º 4
0
        public void can_parse_single_arguments_by_short_name()
        {
            var args = NativeMethods.CommandLineToArgs("/x testname");

            var simple = new SimpleCli();
            var result = simple.CliParse(args);
            Assert.AreEqual(true, result.Successful);
            Assert.AreEqual(0, result.CliParseMessages.ToList().Count);
            Assert.AreEqual(false, result.ShowHelp);

            Assert.AreEqual("testname", simple.FieldX);
        }
Exemplo n.º 5
0
        public void can_set_default_values()
        {
            var args = NativeMethods.CommandLineToArgs("/e");
            var simple = new SimpleCli();
            var result = simple.CliParse(args);

            Assert.AreEqual(true, result.Successful);
            Assert.AreEqual(0, result.CliParseMessages.ToList().Count);
            Assert.AreEqual(false, result.ShowHelp);
            Assert.AreEqual(true, simple.Flage);

            Assert.AreEqual("defaultValue", simple.Fieldc);
            Assert.AreEqual(22, simple.Fieldf);
        }
Exemplo n.º 6
0
        public void can_execute_pre_and_post_methods()
        {
            var args = NativeMethods.CommandLineToArgs("-f 1");

            var simple = new SimpleCli();
            var result = simple.CliParse(args);
            Assert.AreEqual(true, result.Successful);
            Assert.AreEqual(0, result.CliParseMessages.Count());
            Assert.AreEqual(false, result.ShowHelp);

            Assert.AreEqual(true, simple.PreParseExecuted);
            Assert.AreEqual(true, simple.PostParseExecuted);
        }
Exemplo n.º 7
0
        public void can_error_when_parsable_is_null()
        {
            var args = NativeMethods.CommandLineToArgs("/a");

            var simple = new SimpleCli();
            simple = null;
            simple.CliParse(args);
        }
Exemplo n.º 8
0
        public void can_error_missing_values()
        {
            var args = NativeMethods.CommandLineToArgs("/x");

            var simple = new SimpleCli();
            var result = simple.CliParse(args);
            Assert.AreEqual(false, result.Successful);
            Assert.AreEqual(1, result.CliParseMessages.ToList().Count);
            Assert.AreEqual(false, result.ShowHelp);
        }
Exemplo n.º 9
0
        public void can_map_multiple_shortname_paramaters_provided_together()
        {
            // Issue #1
            var args = NativeMethods.CommandLineToArgs("-aAdDv");
            var simpleCli = new SimpleCli();
            var result = simpleCli.CliParse(args);

            Assert.AreEqual(true, result.Successful);
            Assert.AreEqual(0, result.CliParseMessages.ToList().Count);
            Assert.AreEqual(false, result.ShowHelp);

            Assert.AreEqual(true, simpleCli.Add);
            Assert.AreEqual(true, simpleCli.All);
            Assert.AreEqual(true, simpleCli.Delete);
            Assert.AreEqual(true, simpleCli.Detailed);
            Assert.AreEqual(true, simpleCli.Verbose);
        }
Exemplo n.º 10
0
        public void can_handle_help_arguments()
        {
            var args = NativeMethods.CommandLineToArgs("//help");
            var simple = new SimpleCli();
            var result = simple.CliParse(args);
            Assert.AreEqual(true, result.Successful);
            Assert.AreEqual(0, result.CliParseMessages.ToList().Count);
            Assert.AreEqual(true, result.ShowHelp);

            args = NativeMethods.CommandLineToArgs("/?");
            simple = new SimpleCli();
            result = simple.CliParse(args);
            Assert.AreEqual(true, result.Successful);
            Assert.AreEqual(0, result.CliParseMessages.ToList().Count);
            Assert.AreEqual(true, result.ShowHelp);

            args = NativeMethods.CommandLineToArgs("//help");
            simple = new SimpleCli();
            result = simple.CliParse(args);
            Assert.AreEqual(true, result.Successful);
            Assert.AreEqual(0, result.CliParseMessages.ToList().Count);
            Assert.AreEqual(true, result.ShowHelp);

            args = NativeMethods.CommandLineToArgs("-?");
            simple = new SimpleCli();
            result = simple.CliParse(args);
            Assert.AreEqual(true, result.Successful);
            Assert.AreEqual(0, result.CliParseMessages.ToList().Count);
            Assert.AreEqual(true, result.ShowHelp);

            args = NativeMethods.CommandLineToArgs("--help");
            simple = new SimpleCli();
            result = simple.CliParse(args);
            Assert.AreEqual(true, result.Successful);
            Assert.AreEqual(0, result.CliParseMessages.ToList().Count);
            Assert.AreEqual(true, result.ShowHelp);

            args = NativeMethods.CommandLineToArgs("--help");
            simple = new SimpleCli();
            result = simple.CliParse(args);
            Assert.AreEqual(true, result.Successful);
            Assert.AreEqual(0, result.CliParseMessages.ToList().Count);
            Assert.AreEqual(true, result.ShowHelp);
        }
Exemplo n.º 11
0
        public void can_handle_unrecognised_arguments()
        {
            var args = NativeMethods.CommandLineToArgs("/unknownflag testflag");
            var simple = new SimpleCli();
            var result = simple.CliParse(args);

            Assert.AreEqual(false, result.Successful);
            Assert.AreEqual(1, result.CliParseMessages.ToList().Count);
            Assert.AreEqual(false, result.ShowHelp);
        }
Exemplo n.º 12
0
        public void can_create_help_screen_from_supplied_templates()
        {
            var simple = new SimpleCli();
            var actual = simple.GetHelpInfo("{version}-{title}-\r\n{syntax}\r\n{description}\r\n{footer}",
                "-{shortname}, --{name} - {description} {required}, {defaultvalue}, {example}");

            Assert.AreNotEqual(simple.GetHelpInfo() , actual);
            Console.Write(actual);
        }