Esempio n. 1
0
        public void ParseUrlFail()
        {
            // Arrange
            string[] args        = new[] { "--flag=http::\\www.google.com_" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      flag        = application.Flag("flag", "").IsUrl();

            // Act
            var subject = new Parser(application);

            Assert.Throws <ParseException>(() => subject.Parse(args));
        }
Esempio n. 2
0
        public void ParseEnumFail()
        {
            // Arrange
            string[] args        = new[] { "--flag=CheckedXXX" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      flag        = application.Flag("flag", "").IsEnum(typeof(CheckMe));

            // Act
            var subject = new Parser(application);

            Assert.Throws <ParseException>(() => subject.Parse(args));
        }
Esempio n. 3
0
        public void ParseBoolFail()
        {
            // Arrange
            string[] args        = new[] { "--bool=notbool" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      flag        = application.Flag("bool", "").IsBool();

            // Act
            var subject = new Parser(application);

            Assert.Throws <ParseException>(() => subject.Parse(args));
        }
Esempio n. 4
0
        public void IsRequiredShouldFailWhenNoArgumentIsGiven()
        {
            // Arrange
            string[] args        = new string[0];
            var      application = new KingpinApplication(consoleMock.Object);
            var      flag        = application.Flag("required", "This is the required flag").IsRequired();

            // Act
            var subject = new Parser(application);

            Assert.Throws <ParseException>(() => subject.Parse(args));
        }
Esempio n. 5
0
        public void ParseDurationFail()
        {
            // Arrange
            string[] args        = new[] { "--time=notduration" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      flag        = application.Flag("time", "").IsDuration();

            // Act
            var subject = new Parser(application);

            Assert.Throws <ParseException>(() => subject.Parse(args));
        }
Esempio n. 6
0
        public void ParseTcpFail()
        {
            // Arrange
            string[] args        = new[] { "--flag=xyz:" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      flag        = application.Flag("flag", "").IsTcp();

            // Act
            var subject = new Parser(application);

            Assert.Throws <ParseException>(() => subject.Parse(args));
        }
Esempio n. 7
0
        public void ParseGlobalNonBoolFlagThrowsException()
        {
            // Arrange
            string[] args        = new[] { "--myflag" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      flag        = application.Flag("myflag", "This is the flag of the person");

            // Act
            var subject = new Parser(application);

            // Assert
            Assert.Throws <ParseException>(() => subject.Parse(args));
        }
Esempio n. 8
0
        public void ParseStrongTypedDurationSuccess()
        {
            // Arrange
            string[] args        = new[] { "--time=1:00:00" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      flag        = application.Flag <TimeSpan>("time", "");

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal(TimeSpan.FromHours(1), flag.Value);
        }
Esempio n. 9
0
        public void ParseDirectoryShouldExistFail()
        {
            // Arrange
            string directory = Path.GetTempPath();

            string[] args        = new[] { directory + "\\notgonnaexist" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      arg         = application.Argument("directory", "").DirectoryExists();

            // Act
            var subject = new Parser(application);

            Assert.Throws <ParseException>(() => subject.Parse(args));
        }
Esempio n. 10
0
        public void ParseFileShouldExistFail()
        {
            // Arrange
            string fileName    = Path.GetTempPath() + Guid.NewGuid().ToString() + ".tmp";
            var    application = new KingpinApplication(consoleMock.Object);

            string[] args = new[] { fileName };
            var      arg  = application.Argument("file", "").FileExists();

            // Act
            var subject = new Parser(application);

            Assert.Throws <ParseException>(() => subject.Parse(args));
        }
Esempio n. 11
0
        public void ParseStrongTypedIntSuccess()
        {
            // Arrange
            string[] args        = new[] { "--flag=1" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      flag        = application.Flag <int>("flag", "");

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal(1, flag.Value);
        }
Esempio n. 12
0
        public void ParseStrongTypedBoolSuccess()
        {
            // Arrange
            string[] args        = new[] { "--bool=true" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      flag        = application.Flag <bool>("bool", "");

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.True(flag.Value);
        }
Esempio n. 13
0
        public void ParseStrongTypedEnumSuccess()
        {
            // Arrange
            string[] args        = new[] { "--flag=NotSoChecked" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      flag        = application.Flag <CheckMe>("flag", "");

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal(CheckMe.NotSoChecked, flag.Value);
        }
Esempio n. 14
0
        public void ParseUrlSuccess()
        {
            // Arrange
            string[] args        = new[] { "--flag=http://www.google.com" };
            var      application = new KingpinApplication(consoleMock.Object);

            application.Flag("flag", "").IsUrl();

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("http://www.google.com", result.Result["flag"]);
        }
Esempio n. 15
0
        public void ParseHelpFlagOnCommand()
        {
            // Arrange
            string[] args        = new[] { "run", "--help" };
            var      application = new KingpinApplication(console);

            application.Initialize();
            application.Command("run", "This is a command");

            // Act
            var result = application.Parse(args);

            // Assert
            Assert.Equal("true", result.Result["run:help"]);
        }
Esempio n. 16
0
        public void ParseEnumSuccess()
        {
            // Arrange
            string[] args        = new[] { "--flag=NotSoChecked" };
            var      application = new KingpinApplication(consoleMock.Object);

            application.Flag("flag", "").IsEnum(typeof(CheckMe));

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("NotSoChecked", result.Result["flag"]);
        }
Esempio n. 17
0
        public void ParseGlobalShortFlag()
        {
            // Arrange
            string[] args        = new[] { "-i=help" };
            var      application = new KingpinApplication(consoleMock.Object);

            application.Flag("ielp", "This is the help").Short('i');

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("help", result.Result["ielp"]);
        }
Esempio n. 18
0
        public void ParseGlobalArgument()
        {
            // Arrange
            string[] args        = new[] { "hurray" };
            var      application = new KingpinApplication(consoleMock.Object);

            application.Argument("argument", "This is an argument");

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("hurray", result.Result["argument"]);
        }
Esempio n. 19
0
        public void ParseIpSuccess()
        {
            // Arrange
            string[] args        = new[] { "--flag=123.123.123.123" };
            var      application = new KingpinApplication(consoleMock.Object);

            application.Flag("flag", "").IsIp();

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("123.123.123.123", result.Result["flag"]);
        }
Esempio n. 20
0
        public void ParseSimpleCommand()
        {
            // Arrange
            string[] args        = new[] { "run" };
            var      application = new KingpinApplication(consoleMock.Object);

            application.Command("run", "This is a command");

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("run", result.Result["Command"]);
        }
Esempio n. 21
0
        public void ParseBoolSuccess()
        {
            // Arrange
            string[] args        = new[] { "--bool=true" };
            var      application = new KingpinApplication(consoleMock.Object);

            application.Flag("bool", "").IsBool();

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("true", result.Result["bool"]);
        }
Esempio n. 22
0
        public void ParseTcpSuccess()
        {
            // Arrange
            string[] args        = new[] { "--flag=myfancyhostname123:1234" };
            var      application = new KingpinApplication(consoleMock.Object);

            application.Flag("flag", "").IsTcp();

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("myfancyhostname123:1234", result.Result["flag"]);
        }
Esempio n. 23
0
        public void ParseDurationSuccessWithDays()
        {
            // Arrange
            string[] args        = new[] { "--time=1.1:00:00" };
            var      application = new KingpinApplication(consoleMock.Object);

            application.Flag("time", "").IsDuration();

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("1.1:00:00", result.Result["time"]);
        }
Esempio n. 24
0
        public void ParseGlobalFlag()
        {
            // Arrange
            string[] args        = new[] { "--myflag=danish" };
            var      application = new KingpinApplication(consoleMock.Object);

            application.Flag("myflag", "This is the flag of the person");

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("danish", result.Result["myflag"]);
        }
Esempio n. 25
0
        public void WriteEmpty()
        {
            // Arrange
            var application = new KingpinApplication(console);

            // Act
            var subject = new HelpGenerator(application, console);
            var appText = subject.ReadResourceInExecutingAssembly("KingpinNet.Help.ApplicationHelp.liquid");

            subject.Generate(writer, appText);
            // Assert
            var result = writer.ToString();

            output.WriteLine(result);
            Assert.Contains("usage:", result);
        }
Esempio n. 26
0
        public void ParseNestedCommand()
        {
            // Arrange
            string[] args        = new[] { "cmd1", "cmd2" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      command     = application.Command("cmd1", "command1 help");

            command.Command("cmd2", "command2 help");

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("cmd1:cmd2", result.Result["Command"]);
        }
Esempio n. 27
0
        public void ParseStrongTypedUriSuccess()
        {
            // Arrange
            string[] args        = new[] { "--flag=http://www.google.com" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      flag        = application.Flag <Uri>("flag", "");

            // Act
            var subject = new Parser(application);

            subject.Parse(args);

            // Assert
            Assert.Equal(new Uri("http://www.google.com", UriKind.RelativeOrAbsolute).AbsolutePath,
                         flag.Value.AbsolutePath);
        }
Esempio n. 28
0
        public void ParseSimpleCommandWithFlag()
        {
            // Arrange
            string[] args        = new[] { "run", "--myflag=danish" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      command     = application.Command("run", "This is a command");

            command.Flag("myflag", "This is the flag of the person");

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("run", result.Result["Command"]);
            Assert.Equal("danish", result.Result["run:myflag"]);
        }
Esempio n. 29
0
        public void ParseDirectoryShouldExistSuccess()
        {
            // Arrange
            string directory = Path.GetTempPath();

            string[] args        = new[] { directory };
            var      application = new KingpinApplication(consoleMock.Object);

            application.Argument("directory", "").DirectoryExists();

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal(directory, result.Result["directory"]);
        }
Esempio n. 30
0
        public void ParseNestedDefaultFlag()
        {
            // Arrange
            string[] args        = { "cmd1", "cmd2" };
            var      application = new KingpinApplication(consoleMock.Object);
            var      command     = application.Command("cmd1", "command1 help");
            var      cmd2        = command.Command("cmd2", "command2 help");

            cmd2.Flag("flg", "").Default("1234");

            // Act
            var subject = new Parser(application);
            var result  = subject.Parse(args);

            // Assert
            Assert.Equal("1234", result.Result["cmd1:cmd2:flg"]);
        }