public void Should_Add_Default_Arguments()
        {
            var fixture = new JekyllCleanCommandFixture();

            var result = fixture.Run();

            result.Args.Should().Be("exec jekyll clean");
        }
        public void Should_Add_Trace_To_Arguments_If_Not_Null(bool?trace, string expected)
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { Trace = trace },
            };

            var result = fixture.Run();

            result.Args.Should().Be($"exec jekyll clean{expected}");
        }
        public void Should_Add_Layouts_To_Arguments_If_Not_Null()
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { Layouts = @"c:\layoutsDir" },
            };

            var result = fixture.Run();

            result.Args.Should().Be(@"exec jekyll clean --layouts ""c:/layoutsDir""");
        }
        public void Should_Add_Multiple_Plugin_To_Arguments_If_Not_Null()
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { Plugins = new [] { @"c:\pluginDir1", @"c:\pluginDir2" } },
            };

            var result = fixture.Run();

            result.Args.Should().Be(@"exec jekyll clean --plugins ""c:/pluginDir1"" ""c:/pluginDir2""");
        }
        public void Should_Add_LimitPosts_To_Arguments_If_Not_Null(int?limitPosts, string expected)
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { LimitPosts = limitPosts },
            };

            var result = fixture.Run();

            result.Args.Should().Be($"exec jekyll clean{expected}");
        }
        public void Should_Add_DisableDiskCache_To_Arguments_If_Not_Null(bool?disableDiskCache, string expected)
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { DisableDiskCache = disableDiskCache },
            };

            var result = fixture.Run();

            result.Args.Should().Be($"exec jekyll clean{expected}");
        }
        public void Should_Add_IncrementalBuild_To_Arguments_If_Not_Null(bool?incremental, string expected)
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { IncrementalBuild = incremental },
            };

            var result = fixture.Run();

            result.Args.Should().Be($"exec jekyll clean{expected}");
        }
        public void Should_Add_ForcePolling_To_Arguments_If_Not_Null(bool?forcePolling, string expected)
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { ForcePolling = forcePolling },
            };

            var result = fixture.Run();

            result.Args.Should().Be($"exec jekyll clean{expected}");
        }
        public void Should_Add_BaseUrl_To_Arguments_If_Not_Null()
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { BaseUrl = @"http://*****:*****@"exec jekyll clean --baseurl ""http://localhost:8042""");
        }
        public void Should_Add_Watch_To_Arguments_If_Not_Null(bool?regeneration, string expected)
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { Watch = regeneration },
            };

            var result = fixture.Run();

            result.Args.Should().Be($"exec jekyll clean{expected}");
        }
        public void Should_Add_LogLevel_To_Arguments_If_Not_Null(JekyllLogLevel?logLevel, string expected)
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { LogLevel = logLevel },
            };

            var result = fixture.Run();

            result.Args.Should().Be($"exec jekyll clean{expected}");
        }
        public void Should_Add_StrictFrontMatter_To_Arguments_If_Not_Null(bool?strictFrontMatter, string expected)
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { StrictFrontMatter = strictFrontMatter },
            };

            var result = fixture.Run();

            result.Args.Should().Be($"exec jekyll clean{expected}");
        }
        public void Should_Add_Source_To_Arguments_If_Not_Null()
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { Source = @"c:\sourceDir" },
            };

            var result = fixture.Run();

            result.Args.Should().Be(@"exec jekyll clean --source ""c:/sourceDir""");
        }
        public void Should_Add_Destination_To_Arguments_If_Not_Null()
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { Destination = @"c:\destinationDir" },
            };

            var result = fixture.Run();

            result.Args.Should().Be(@"exec jekyll clean --destination ""c:/destinationDir""");
        }
        public void Should_Add_Multiple_Configuration_To_Arguments_If_Not_Null()
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { Configuration = new [] { @"c:\_config1.yml", @"c:\_config2.yml" } },
            };

            var result = fixture.Run();

            result.Args.Should().Be(@"exec jekyll clean --config ""c:/_config1.yml"" ""c:/_config2.yml""");
        }
        public void Should_Throw_If_Settings_Are_Null()
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = null,
            };

            Action action = () => fixture.Run();

            action.Should().Throw <ArgumentNullException>()
            .Which.ParamName.Should().Be("settings");
        }
        public void Should_Add_Default_Arguments_When_Bundler_Is_Disabled()
        {
            var fixture = new JekyllCleanCommandFixture
            {
                Settings = { DoNotUseBundler = true },
            };

            fixture.GivenJekyllToolExist();

            var result = fixture.Run();

            result.Args.Should().Be("clean");
        }