public void Debug_Option_Ignore_Case_Debug_Is_True()
            {
                var arguments = new[] { "test.html", "/tRAce" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.True(commandLine.Trace);
            }
            public void CoverageExclude_Option_With_Value_CoverageIgnorePattern_Set()
            {
                var arguments = new[] { "test.html", "/coverageIgnores", "*.ts" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.Equal("*.ts", commandLine.CoverageIgnorePatterns);
            }
            public void File_Option_Adds_File()
            {
                var arguments = new[] { "/file", "test.html" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.Contains("test.html", commandLine.Files);
            }
            public void Coverage_Option_Not_Passed_Coverage_False()
            {
                var arguments = new[] { "test.html" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.False(commandLine.Coverage);
            }
            public void Path_Option_Ignores_Case()
            {
                string[] arguments = new[] { "/paTH", "test" };

                TestableCommandLine commandLine = TestableCommandLine.Create(arguments);

                Assert.Contains("test", commandLine.Files);
            }
            public void TeamCity_Option_Ignore_Case_TeamCity_True()
            {
                var arguments = new[] { "test.html", "/tEaMcItY" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.True(commandLine.TeamCity);
            }
            public void VSOutput_Option_Debug_Is_VSOutput()
            {
                var arguments = new[] { "test.html", "/vsoutput" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.True(commandLine.VsOutput);
            }
            public void Will_set_to_number_passed_in()
            {
                var arguments = new[] { "test.html", "/timeoutmilliseconds", "10" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.Equal(10, commandLine.TimeOutMilliseconds);
            }
            public void Will_ignore_case()
            {
                var arguments = new[] { "test.html", "/timeoutMilliseconds", "10" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.Equal(10, commandLine.TimeOutMilliseconds);
            }
            public void Wait_Option_Ignore_Case_Wait_Is_True()
            {
                var arguments = new[] { "test.html", "/wAiT" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.True(commandLine.Wait);
            }
            public void Will_be_null_if_not_pass()
            {
                var arguments = new[] { "test.html" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.Null(commandLine.TimeOutMilliseconds);
            }
            public void Silent_Option_Silent_Is_True()
            {
                var arguments = new[] { "test.html", "/NoLogo" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.True(commandLine.NoLogo);
            }
            public void Silent_Option_Not_Passed_Silent_False()
            {
                var arguments = new[] { "test.html" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.False(commandLine.NoLogo);
            }
            public void Silent_Option_Ignore_Case_Silent_Is_True()
            {
                var arguments = new[] { "test.html", "/sIlEnT" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.True(commandLine.Silent);
            }
            public void TeamCity_Option_Not_Passed_Environment_Set_TeamCity_True()
            {
                var arguments = new[] { "test.html" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.True(commandLine.TeamCity);
            }
            public void Will_throw_if_arg_is_negative()
            {
                var arguments = new[] { "test.html", "/timeoutmilliseconds", "-10" };

                var ex = Record.Exception(() => TestableCommandLine.Create(arguments)) as ArgumentException;

                Assert.NotNull(ex);
            }
            public void TeamCity_Option_TeamCity_True()
            {
                var arguments = new[] { "test.html", "/teamcity" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.True(commandLine.TeamCity);
            }
            public void First_Argument_With_No_Slash_Is_Added_As_File()
            {
                var arguments = new[] { "test.html" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.Contains("test.html", commandLine.Files);
            }
            public void VSOutput_Option_Not_Passed_VSOutput_False()
            {
                var arguments = new[] { "test.html" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.False(commandLine.VsOutput);
            }
            public void Will_set_to_number_passed_in()
            {
                var arguments = new[] { "test.html", "/parallelism", "3" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.Equal(3, commandLine.Parallelism);
            }
            public void VSOutput_Option_Ignore_Case_VSOutput_Is_True()
            {
                var arguments = new[] { "test.html", "/VsOutpUt" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.True(commandLine.VsOutput);
            }
            public void Will_ignore_case()
            {
                var arguments = new[] { "test.html", "/ParaLLelisM", "3" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.Equal(3, commandLine.Parallelism);
            }
            public void Coverage_Option_Coverage_Is_True()
            {
                var arguments = new[] { "test.html", "/coverage" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.True(commandLine.Coverage);
            }
            public void Will_set_to_cpu_count_plus_one_if_no_option_given()
            {
                var arguments = new[] { "test.html", "/parallelism" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.Equal(Environment.ProcessorCount + 1, commandLine.Parallelism);
            }
            public void CoverageExclude_Option_Not_Passed_CoverageIgnorePattern_Null()
            {
                var arguments = new[] { "test.html" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.Null(commandLine.CoverageIgnorePatterns);
            }
            public void Will_throw_if_arg_is_not_a_number()
            {
                var arguments = new[] { "test.html", "/parallelism", "sdf" };

                var ex = Record.Exception(() => TestableCommandLine.Create(arguments)) as ArgumentException;

                Assert.NotNull(ex);
            }
            public void Will_throw_if_no_arg_given_to_CoverageExclude()
            {
                var arguments = new[] { "test.html", "/coverageExcludes" };

                var ex = Record.Exception(() => TestableCommandLine.Create(arguments)) as ArgumentException;

                Assert.NotNull(ex);
            }
            public void TeamCity_Option_Not_Passed_TeamCity_False()
            {
                var arguments = new[] { "test.html" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.False(commandLine.TeamCity);
            }
            public void File_Option_Ignores_Case()
            {
                string[] arguments = new[] { "/fIlE", "test.html" };

                TestableCommandLine commandLine = TestableCommandLine.Create(arguments);

                Assert.Contains("test.html", commandLine.Files);
            }
            public void Debug_Option_Not_Passed_Debug_False()
            {
                var arguments = new[] { "test.html" };

                var commandLine = TestableCommandLine.Create(arguments);

                Assert.False(commandLine.Trace);
            }