Exemplo n.º 1
0
                public void Can_Parse_Help(string input, bool expected)
                {
                    // Given
                    var fixture = new ArgumentParserFixture();
                    var parser  = new ArgumentParser(fixture.Log, fixture.VerbosityParser);

                    // When
                    var result = parser.Parse(new[] { "build.cake", input });

                    // Then
                    Assert.Equal(expected, result.ShowHelp);
                }
Exemplo n.º 2
0
            public void Should_Throw_If_Arguments_Are_Null()
            {
                // Given
                var fixture = new ArgumentParserFixture();
                var parser  = new ArgumentParser(fixture.Log, fixture.VerbosityParser);

                // When
                var result = Record.Exception(() => parser.Parse(null));

                // Then
                AssertEx.IsArgumentNullException(result, "args");
            }
Exemplo n.º 3
0
                public void Can_Parse_Verbosity(string input, Verbosity value)
                {
                    // Given
                    var fixture = new ArgumentParserFixture();
                    var parser  = new ArgumentParser(fixture.Log, fixture.VerbosityParser);

                    // When
                    var result = parser.Parse(new[] { "build.cake", input });

                    // Then
                    Assert.Equal(value, result.Verbosity);
                }
Exemplo n.º 4
0
                public void Should_Add_Unknown_Arguments_To_Argument_List()
                {
                    // Given
                    var fixture = new ArgumentParserFixture();
                    var parser  = new ArgumentParser(fixture.Log, fixture.VerbosityParser);

                    // When
                    var result = parser.Parse(new[] { "build.cake", "-unknown" });

                    // Then
                    Assert.True(result.Arguments.ContainsKey("unknown"));
                }
Exemplo n.º 5
0
            public void Can_Parse_Empty_Parameters()
            {
                // Given
                var fixture = new ArgumentParserFixture();
                var parser  = new ArgumentParser(fixture.Log, fixture.VerbosityParser);

                // When
                var result = parser.Parse(new string[] { });

                // Then
                Assert.NotNull(result);
            }
Exemplo n.º 6
0
                public void Should_Throw_If_Parsing_Invalid_Verbosity(string verbosity, string expected)
                {
                    // Given
                    var fixture = new ArgumentParserFixture();
                    var parser  = new ArgumentParser(fixture.Log, fixture.VerbosityParser);

                    // When
                    var result = parser.Parse(new[] { "build.csx", verbosity });

                    // Then
                    Assert.True(result.HasError);
                    Assert.True(fixture.Log.Entries.Any(e => e.Message == expected));
                }
Exemplo n.º 7
0
            public void Should_Return_Error_If_Multiple_Arguments_With_The_Same_Name_Exist()
            {
                // Given
                var fixture = new ArgumentParserFixture {Log = new FakeLog()};
                var parser = new ArgumentParser(fixture.Log, fixture.FileSystem);

                // When
                var result = parser.Parse(new[] { "build.csx", "-unknown", "-unknown" });

                // Then
                Assert.Null(result);
                Assert.True(fixture.Log.Messages.Contains("Multiple arguments with the same name (unknown)."));
            }
Exemplo n.º 8
0
            public void Should_Throw_If_Multiple_Build_Configurations_Are_Provided()
            {
                // Given
                var fixture = new ArgumentParserFixture { Log = new FakeLog() };
                var parser = new ArgumentParser(fixture.Log, fixture.FileSystem);
                var arguments = new[] { "build1.config", "build2.config" };

                // When
                parser.Parse(arguments);

                // Then
                Assert.Equal("More than one build script specified.", fixture.Log.Messages[0]);
            }
Exemplo n.º 9
0
            public void Can_Parse_Script(string input)
            {
                // Given
                var fixture   = new ArgumentParserFixture();
                var parser    = new ArgumentParser(fixture.Log, fixture.FileSystem);
                var arguments = input.Split(new[] { ' ' }, StringSplitOptions.None);

                // When
                var result = parser.Parse(arguments);

                // Then
                Assert.NotNull(result.Script);
                Assert.Equal("build.csx", result.Script.FullPath);
            }
Exemplo n.º 10
0
                public void Should_Throw_If_Parsing_Invalid_Verbosity(string verbosity, string expected)
                {
                    // Given
                    var fixture = new ArgumentParserFixture();
                    var parser  = new ArgumentParser(fixture.Log, fixture.FileSystem);

                    // When
                    var result = Record.Exception(() => {
                        parser.Parse(new[] { "build.csx", verbosity });
                    });

                    // Then
                    Assert.IsExceptionWithMessage <InvalidOperationException>(result, expected);
                }
Exemplo n.º 11
0
            public void Can_Parse_Script_With_Unix_Path(string input)
            {
                // Given
                var fixture   = new ArgumentParserFixture();
                var parser    = new ArgumentParser(fixture.Log, fixture.VerbosityParser);
                var arguments = input.Split(new[] { ' ' }, StringSplitOptions.None);

                // When
                var result = parser.Parse(arguments);

                // Then
                Assert.NotNull(result);
                Assert.NotNull(result.Script);
                Assert.Equal("/home/test/build.csx", result.Script.FullPath);
            }
Exemplo n.º 12
0
            public void Should_Add_Unknown_Arguments_To_Argument_List_Without_Script()
            {
                // Given
                var environment = FakeEnvironment.CreateUnixEnvironment();
                var fakeFileSystem = new FakeFileSystem(environment);
                fakeFileSystem.CreateFile(new FilePath("build.cake"));
                var fixture = new ArgumentParserFixture { FileSystem = fakeFileSystem };
                var parser = new ArgumentParser(fixture.Log, fixture.FileSystem);

                // When
                var result = parser.Parse(new[] { "-unknown" });

                // Then
                Assert.True(result.Arguments.ContainsKey("unknown"));
            }
Exemplo n.º 13
0
            public void Should_Return_Default_Options_If_Multiple_Build_Configurations_Are_Provided()
            {
                // Given
                var fixture = new ArgumentParserFixture {
                    Log = new FakeLog()
                };
                var parser    = new ArgumentParser(fixture.Log, fixture.VerbosityParser);
                var arguments = new[] { "build1.config", "build2.config" };

                // When
                CakeOptions options = parser.Parse(arguments);

                // Then
                AssertDefaultOptions(options);
            }
Exemplo n.º 14
0
                public void Should_Return_Error_If_Multiple_Arguments_With_The_Same_Name_Exist()
                {
                    // Given
                    var fixture = new ArgumentParserFixture {
                        Log = new FakeLog()
                    };
                    var parser = new ArgumentParser(fixture.Log, fixture.VerbosityParser);

                    // When
                    var result = parser.Parse(new[] { "build.csx", "--unknown", "--unknown" });

                    // Then
                    Assert.NotNull(result);
                    Assert.True(result.HasError);
                    Assert.True(fixture.Log.Entries.Any(x => x.Message == "Multiple arguments with the same name (unknown)."));
                }
Exemplo n.º 15
0
            public void Can_Find_Default_Scripts(string scriptName)
            {
                // Given
                var fixture = new ArgumentParserFixture();
                var parser = new ArgumentParser(fixture.Log, fixture.FileSystem);
                var file = Substitute.For<IFile>();
                file.Exists.Returns(true);

                fixture.FileSystem.GetFile(Arg.Is<FilePath>(fp => fp.FullPath == scriptName))
                    .Returns(file);

                // When
                var result = parser.Parse(new string [] {});

                // Then
                Assert.NotNull(result.Script);
            }
Exemplo n.º 16
0
            public void Should_Add_Unknown_Arguments_To_Argument_List_Without_Script()
            {
                // Given
                var fakeFileSystem = new FakeFileSystem(isCaseSensitive: false);
                var fakePath       = new FilePath("build.cake");
                var fakeFile       = new FakeFile(fakeFileSystem, fakePath)
                {
                    Exists = true
                };
                var fixture = new ArgumentParserFixture {
                    FileSystem = fakeFileSystem
                };
                var parser = new ArgumentParser(fixture.Log, fixture.FileSystem);

                fakeFileSystem.Files.Add(fakePath, fakeFile);

                // When
                var result = parser.Parse(new[] { "-unknown" });

                // Then
                Assert.True(result.Arguments.ContainsKey("unknown"));
            }