Example #1
0
            public void Will_get_map_line_numbers_to_test_result()
            {
                var reader         = new TestableTestCaseStreamReader();
                var json           = JsonStreamEvents.FileStartEventJson + JsonStreamEvents.TestStartEventJson + JsonStreamEvents.TestDoneEventJson;
                var referencedFile = new ReferencedFile
                {
                    IsFileUnderTest = true,
                    Path            = "inputTestFile",
                    FilePositions   = new FilePositions()
                };

                referencedFile.FilePositions.Add(1, 3, "test");
                var context = new TestContext
                {
                    TestHarnessPath = "htmlTestFile",
                    ReferencedFiles = new[] { referencedFile }
                };
                var      stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var      processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var      callback      = new Mock <ITestMethodRunnerCallback>();
                TestCase result        = null;

                callback.Setup(x => x.TestFinished(It.IsAny <TestCase>())).Callback <TestCase>(t => result = t);

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.NotNull(result);
                Assert.Equal("module", result.ModuleName);
                Assert.Equal("test", result.TestName);
                Assert.Equal(1, result.Line);
                Assert.Equal(3, result.Column);
            }
Example #2
0
            public void Will_set_line_position_to_zero_when_no_matching_file_position()
            {
                var reader         = new TestableTestCaseStreamReader();
                var json           = @"#_#TestDone#_# {""type"":""TestDone"",""testCase"":{""moduleName"":""module"",""testName"":""test"",""testResults"":[]}}";
                var referencedFile = new ReferencedFile
                {
                    IsFileUnderTest = true,
                    Path            = "inputTestFile",
                    FilePositions   = new FilePositions()
                };
                var context = new TestContext
                {
                    TestHarnessPath = "htmlTestFile",
                    InputTestFile   = "inputTestFile",
                    ReferencedFiles = new[] { referencedFile }
                };
                var      stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var      processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var      callback      = new Mock <ITestMethodRunnerCallback>();
                TestCase result        = null;

                callback.Setup(x => x.TestFinished(It.IsAny <TestCase>())).Callback <TestCase>(t => result = t);

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.NotNull(result);
                Assert.Equal("module", result.ModuleName);
                Assert.Equal("test", result.TestName);
                Assert.Equal(0, result.Line);
                Assert.Equal(0, result.Column);
            }
Example #3
0
            public void Will_place_not_found_test_in_first_context_given_no_matches_and_no_current_file_match()
            {
                // This case covers the scenario where the test names are not found in filePosition map
                // what should happen is when we hit the first one we don't know which file it is from so we *assume* the first
                // one. Then when we find the same test name again we realize we can't assign it to the current file
                // so we assign it to the next

                var reader = new TestableTestCaseStreamReader();

                var jsonFile1     = JsonStreamEvents.BuildTestEventFile(Tuple.Create("", "test1"));
                var jsonFile2     = JsonStreamEvents.BuildTestEventFile(Tuple.Create("", "test1"));
                var json          = jsonFile1 + jsonFile2;
                var context       = reader.BuildContext(Tuple.Create("file1", "testNoMatch", 1, 1), Tuple.Create("file2", "testNoMatch", 2, 2));
                var stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                var summaries = reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.Equal(1, summaries[0].Tests.Count);
                Assert.Equal("file1", summaries[0].Tests[0].InputTestFile);
                Assert.Equal("test1", summaries[0].Tests[0].TestName);
                Assert.Equal(1, summaries[1].Tests.Count);
                Assert.Equal("file2", summaries[1].Tests[0].InputTestFile);
                Assert.Equal("test1", summaries[1].Tests[0].TestName);
            }
Example #4
0
            public void Will_put_test_case_in_summary()
            {
                var reader = new TestableTestCaseStreamReader();

                var json    = @"
#_#TestDone#_# {""type"":""TestDone"",""testCase"":{""moduleName"":""module"",""testName"":""test"",""testResults"":[{""message"":""bad"",""passed"":false,""actual"":4,""expected"":5}]}}
";
                var context = new TestContext {
                    InputTestFile = "file"
                };
                var stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                var summary = reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);


                Assert.Equal(1, summary.Tests.Count);
                Assert.Equal(1, summary.Tests[0].TestResults.Count);
                Assert.Equal("file", summary.Tests[0].InputTestFile);
                Assert.Equal("module", summary.Tests[0].ModuleName);
                Assert.Equal("test", summary.Tests[0].TestName);
                Assert.False(summary.Tests[0].Passed);
                Assert.False(summary.Tests[0].TestResults[0].Passed);
                Assert.Equal("4", summary.Tests[0].TestResults[0].Actual);
                Assert.Equal("5", summary.Tests[0].TestResults[0].Expected);
                Assert.Equal("bad", summary.Tests[0].TestResults[0].Message);
            }
            public void Will_set_line_position_to_zero_when_no_matching_file_position()
            {
                var reader         = new TestableTestCaseStreamReader();
                var json           = JsonStreamEvents.FileStartEventJson + JsonStreamEvents.TestStartEventJson + JsonStreamEvents.TestDoneEventJson;
                var referencedFile = new ReferencedFile
                {
                    IsFileUnderTest = true,
                    Path            = "inputTestFile",
                    FilePositions   = new FilePositions()
                };
                var context = new TestContext
                {
                    TestHarnessPath = "htmlTestFile",
                    ReferencedFiles = new[] { referencedFile }
                };
                var      stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var      processStream = new ProcessStreamStringSource(new Mock <IProcessWrapper>().Object, stream, 1000);
                var      callback      = new Mock <ITestMethodRunnerCallback>();
                TestCase result        = null;

                callback.Setup(x => x.TestFinished(It.Is <TestContext>(testContext => testContext == context), It.IsAny <TestCase>())).Callback <TestContext, TestCase>((c, t) => result = t);

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object);

                Assert.NotNull(result);
                Assert.Equal("module", result.ModuleName);
                Assert.Equal("test", result.TestName);
                Assert.Equal(0, result.Line);
                Assert.Equal(0, result.Column);
            }
Example #6
0
            public void Will_throw_argument_null_exception_if_stream_is_null()
            {
                var reader = new TestableTestCaseStreamReader();

                var model = Record.Exception(() => reader.ClassUnderTest.Read(null, new TestOptions(), new TestContext(), null, true)) as ArgumentNullException;

                Assert.NotNull(model);
            }
Example #7
0
            public void Will_throw_argument_null_exception_if_context_is_null()
            {
                var reader        = new TestableTestCaseStreamReader();
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, new StreamReader(new MemoryStream()));

                var model = Record.Exception(() => reader.ClassUnderTest.Read(processStream, new TestOptions(), null, null, true)) as ArgumentNullException;

                Assert.NotNull(model);
            }
Example #8
0
            public void Will_fire_file_started_event()
            {
                var reader        = new TestableTestCaseStreamReader();
                var json          = JsonStreamEvents.FileStartEventJson + JsonStreamEvents.TestStartEventJson;
                var context       = reader.BuildContext("file");
                var stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                callback.Verify(x => x.FileStarted("file"));
            }
Example #9
0
            public void Will_fire_file_started_event()
            {
                var reader  = new TestableTestCaseStreamReader();
                var json    = @"#_#FileStart#_# {""type"": ""FileStart"", ""timetaken"":88}";
                var context = new TestContext {
                    InputTestFile = "file"
                };
                var stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                callback.Verify(x => x.FileStarted("file"));
            }
Example #10
0
            public void Will_supress_internal_log_event()
            {
                var     reader        = new TestableTestCaseStreamReader();
                var     json          = JsonStreamEvents.FileStartEventJson + JsonStreamEvents.TestStartEventJson + string.Format(JsonStreamEvents.LogEventJsonTemplate, "!!_!! log");
                var     context       = reader.BuildContext("file");
                var     stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var     processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var     callback      = new Mock <ITestMethodRunnerCallback>();
                TestLog result        = null;

                callback.Setup(x => x.FileLog(It.IsAny <TestLog>())).Callback <TestLog>(t => result = t);

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.Null(result);
            }
Example #11
0
            public void Will_put_coverage_object_in_summary()
            {
                var reader = new TestableTestCaseStreamReader();

                var json          = JsonStreamEvents.FileStartEventJson + JsonStreamEvents.TestStartEventJson + JsonStreamEvents.CoverageEventJson;
                var context       = reader.BuildContext("file");
                var stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                reader.Mock <ICoverageEngine>().Setup(ce => ce.DeserializeCoverageObject(It.IsAny <string>(), context)).
                Returns(new CoverageData());

                var summary = reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false)[0];

                Assert.NotNull(summary.CoverageObject);
            }
Example #12
0
            public void Will_put_logs_in_summary()
            {
                var reader = new TestableTestCaseStreamReader();

                var json          = JsonStreamEvents.FileStartEventJson + JsonStreamEvents.TestStartEventJson + string.Format(JsonStreamEvents.LogEventJsonTemplate, "hi") + string.Format(JsonStreamEvents.LogEventJsonTemplate, "bye");
                var context       = reader.BuildContext("file");
                var stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                var summary = reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false)[0];

                Assert.Equal(2, summary.Logs.Count);
                Assert.Equal("file", summary.Logs[0].InputTestFile);
                Assert.Equal("hi", summary.Logs[0].Message);
                Assert.Equal("bye", summary.Logs[1].Message);
            }
Example #13
0
            public void Will_fire_file_finished_event()
            {
                var             reader        = new TestableTestCaseStreamReader();
                var             json          = JsonStreamEvents.FileStartEventJson + JsonStreamEvents.TestStartEventJson + JsonStreamEvents.TestDoneEventJson + JsonStreamEvents.FileDoneEventJson;
                var             context       = reader.BuildContext("file");
                var             stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var             processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var             callback      = new Mock <ITestMethodRunnerCallback>();
                TestFileSummary result        = null;

                callback.Setup(x => x.FileFinished("file", It.IsAny <TestFileSummary>())).Callback <string, TestFileSummary>((f, t) => result = t);;

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.NotNull(result);
                Assert.Equal(10, result.TimeTaken);
            }
Example #14
0
            public void Will_fire_log_event_if_file_is_not_already_known()
            {
                var     reader        = new TestableTestCaseStreamReader();
                var     json          = JsonStreamEvents.FileStartEventJson + JsonStreamEvents.LogEventJson + JsonStreamEvents.TestStartEventJson;
                var     context       = reader.BuildContext("file");
                var     stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var     processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var     callback      = new Mock <ITestMethodRunnerCallback>();
                TestLog result        = null;

                callback.Setup(x => x.FileLog(It.IsAny <TestLog>())).Callback <TestLog>(t => result = t);

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.NotNull(result);
                Assert.Equal("log", result.Message);
                Assert.Equal("file", result.InputTestFile);
            }
Example #15
0
            public void Will_set_empty_coverage_object_when_coverage_is_enabled()
            {
                var reader = new TestableTestCaseStreamReader();

                var json          = @"";
                var context       = reader.BuildContext("file");
                var stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                var summary = reader.ClassUnderTest.Read(processStream, new TestOptions {
                    CoverageOptions = new CoverageOptions {
                        Enabled = true
                    }
                }, context, callback.Object, false)[0];

                Assert.NotNull(summary.CoverageObject);
            }
Example #16
0
            public void Will_set_timed_out_after_test_file_timeout_and_kill_process()
            {
                var reader = new TestableTestCaseStreamReader();

                var context       = reader.BuildContext("file");
                var stream        = new WaitingStreamReader(new MemoryStream(Encoding.UTF8.GetBytes("")), 1000);
                var process       = new Mock <IProcessWrapper>();
                var processStream = new ProcessStream(process.Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                var summary = reader.ClassUnderTest.Read(processStream, new TestOptions {
                    TestFileTimeoutMilliseconds = 200
                }, context, callback.Object, false)[0];

                Assert.NotNull(summary);
                Assert.True(processStream.TimedOut);
                process.Verify(x => x.Kill());
            }
Example #17
0
            public void Will_supress_internal_log_event()
            {
                var reader  = new TestableTestCaseStreamReader();
                var json    = @"#_#Log#_# {""type"":""Log"",""Log"":{""message"":""!!_!! hi""}}";
                var context = new TestContext {
                    InputTestFile = "file"
                };
                var     stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var     processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var     callback      = new Mock <ITestMethodRunnerCallback>();
                TestLog result        = null;

                callback.Setup(x => x.FileLog(It.IsAny <TestLog>())).Callback <TestLog>(t => result = t);

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.Null(result);
            }
Example #18
0
            public void Will_recover_after_malformed_json()
            {
                var reader = new TestableTestCaseStreamReader();

                var json = @"
#_#Log#_# ""type"":""Log"",""Log"":{""message"":""hi""}}
"
                           + string.Format(JsonStreamEvents.LogEventJsonTemplate, "bye") + JsonStreamEvents.FileStartEventJson + JsonStreamEvents.TestStartEventJson;
                var context       = reader.BuildContext("file");
                var stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                var summary = reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false)[0];

                Assert.Equal(1, summary.Logs.Count);
                Assert.Equal("file", summary.Logs[0].InputTestFile);
                Assert.Equal("bye", summary.Logs[0].Message);
            }
Example #19
0
            public void Will_put_error_in_summary()
            {
                var reader = new TestableTestCaseStreamReader();

                var json          = JsonStreamEvents.FileStartEventJson + JsonStreamEvents.TestStartEventJson + JsonStreamEvents.ErrorEventJson;
                var context       = reader.BuildContext("file");
                var stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                var summary = reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false)[0];

                Assert.Equal(1, summary.Errors.Count);
                Assert.Equal("file", summary.Errors[0].InputTestFile);
                Assert.Equal("error", summary.Errors[0].Message);
                Assert.Equal("errorFile", summary.Errors[0].Stack[0].File);
                Assert.Equal("errorFunc", summary.Errors[0].Stack[0].Function);
                Assert.Equal("22", summary.Errors[0].Stack[0].Line);
            }
Example #20
0
            public void Will_supress_errors_after_timeout_when_killing_process()
            {
                var reader = new TestableTestCaseStreamReader();

                var context       = reader.BuildContext("file");
                var stream        = new WaitingStreamReader(new MemoryStream(Encoding.UTF8.GetBytes("")), 1000);
                var process       = new Mock <IProcessWrapper>();
                var processStream = new ProcessStream(process.Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                process.Setup(x => x.Kill()).Throws(new InvalidOperationException());

                var summary = reader.ClassUnderTest.Read(processStream, new TestOptions {
                    TestFileTimeoutMilliseconds = 200
                }, context, callback.Object, false)[0];

                Assert.NotNull(summary);
                process.Verify(x => x.Kill());
            }
Example #21
0
            public void Will_fire_file_finished_event()
            {
                var reader  = new TestableTestCaseStreamReader();
                var json    = @"#_#FileDone#_# {""type"":""FileDone"",""timetaken"":10,""failed"":1,""passed"":2}";
                var context = new TestContext {
                    InputTestFile = "file"
                };
                var             stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var             processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var             callback      = new Mock <ITestMethodRunnerCallback>();
                TestFileSummary result        = null;

                callback.Setup(x => x.FileFinished("file", It.IsAny <TestFileSummary>())).Callback <string, TestFileSummary>((f, t) => result = t);;

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.NotNull(result);
                Assert.Equal(10, result.TimeTaken);
            }
            public void Will_fire_test_finished_event()
            {
                var      reader        = new TestableTestCaseStreamReader();
                var      json          = JsonStreamEvents.FileStartEventJson + JsonStreamEvents.TestStartEventJson + JsonStreamEvents.TestDoneEventJson;
                var      context       = reader.BuildContext("file");
                var      stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var      processStream = new ProcessStreamStringSource(new Mock <IProcessWrapper>().Object, stream, 1000);
                var      callback      = new Mock <ITestMethodRunnerCallback>();
                TestCase result        = null;

                callback.Setup(x => x.TestFinished(context, It.IsAny <TestCase>())).Callback <TestContext, TestCase>((c, t) => result = t);

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object);

                Assert.NotNull(result);
                Assert.Equal("module", result.ModuleName);
                Assert.Equal("test", result.TestName);
                Assert.Equal("file", result.InputTestFile);
            }
Example #23
0
            public void Will_put_coverage_object_in_summary()
            {
                var reader = new TestableTestCaseStreamReader();

                var json    = @"#_#CoverageObject#_# {""type"":""CoverageObject"",""Object"":""""}";
                var context = new TestContext {
                    InputTestFile = "file"
                };
                var stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                reader.Mock <ICoverageEngine>().Setup(ce => ce.DeserializeCoverageObject(It.IsAny <string>(), context)).
                Returns(new CoverageData());

                var summary = reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.NotNull(summary.CoverageObject);
            }
Example #24
0
            public void Will_fire_error_event()
            {
                var       reader        = new TestableTestCaseStreamReader();
                var       json          = JsonStreamEvents.FileStartEventJson + JsonStreamEvents.TestStartEventJson + JsonStreamEvents.ErrorEventJson;
                var       context       = reader.BuildContext("file");
                var       stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var       processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var       callback      = new Mock <ITestMethodRunnerCallback>();
                TestError result        = null;

                callback.Setup(x => x.FileError(It.IsAny <TestError>())).Callback <TestError>(t => result = t);

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.NotNull(result);
                Assert.Equal("file", result.InputTestFile);
                Assert.Equal("error", result.Message);
                Assert.Equal("errorFile", result.Stack[0].File);
                Assert.Equal("errorFunc", result.Stack[0].Function);
                Assert.Equal("22", result.Stack[0].Line);
            }
Example #25
0
            public void Will_fire_test_finished_event()
            {
                var reader  = new TestableTestCaseStreamReader();
                var json    = @"#_#TestDone#_# {""type"":""TestDone"",""testCase"":{""moduleName"":""module"",""testName"":""test"",""testResults"":[]}}";
                var context = new TestContext {
                    InputTestFile = "file"
                };
                var      stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var      processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var      callback      = new Mock <ITestMethodRunnerCallback>();
                TestCase result        = null;

                callback.Setup(x => x.TestFinished(It.IsAny <TestCase>())).Callback <TestCase>(t => result = t);

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.NotNull(result);
                Assert.Equal("module", result.ModuleName);
                Assert.Equal("test", result.TestName);
                Assert.Equal("file", result.InputTestFile);
            }
            public void Will_use_timeout_from_context_if_available()
            {
                var reader  = new TestableTestCaseStreamReader();
                var context = reader.BuildContext("file");

                context.TestFileSettings = new ChutzpahTestSettingsFile {
                    TestFileTimeout = 200
                };
                var stream        = new WaitingStreamReader(new MemoryStream(Encoding.UTF8.GetBytes("")), 10000);
                var process       = new Mock <IProcessWrapper>();
                var processStream = new ProcessStreamStringSource(process.Object, stream, 1000);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                process.Setup(x => x.Kill()).Throws(new InvalidOperationException());

                var summary = reader.ClassUnderTest.Read(processStream, new TestOptions {
                    TestFileTimeoutMilliseconds = 2000
                }, context, callback.Object).TestFileSummaries[0];

                Assert.NotNull(summary);
                process.Verify(x => x.Kill());
            }
Example #27
0
            public void Will_put_logs_in_summary()
            {
                var reader = new TestableTestCaseStreamReader();

                var json    = @"
#_#Log#_# {""type"":""Log"",""Log"":{""message"":""hi""}}
#_#Log#_# {""type"":""Log"",""Log"":{""message"":""bye""}}
";
                var context = new TestContext {
                    InputTestFile = "file"
                };
                var stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                var summary = reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.Equal(2, summary.Logs.Count);
                Assert.Equal("file", summary.Logs[0].InputTestFile);
                Assert.Equal("hi", summary.Logs[0].Message);
                Assert.Equal("bye", summary.Logs[1].Message);
            }
Example #28
0
            public void Will_fire_error_event()
            {
                var reader  = new TestableTestCaseStreamReader();
                var json    = @"#_#Error#_# {""type"":""Error"",""Error"":{""message"":""uhoh"", ""stack"":[{""file"":""errorFile"",""function"":""errorFunc"",""line"":22}]}}";
                var context = new TestContext {
                    InputTestFile = "file"
                };
                var       stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var       processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var       callback      = new Mock <ITestMethodRunnerCallback>();
                TestError result        = null;

                callback.Setup(x => x.FileError(It.IsAny <TestError>())).Callback <TestError>(t => result = t);

                reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.NotNull(result);
                Assert.Equal("file", result.InputTestFile);
                Assert.Equal("uhoh", result.Message);
                Assert.Equal("errorFile", result.Stack[0].File);
                Assert.Equal("errorFunc", result.Stack[0].Function);
                Assert.Equal("22", result.Stack[0].Line);
            }
Example #29
0
            public void Will_put_error_in_summary()
            {
                var reader = new TestableTestCaseStreamReader();

                var json    = @"
#_#Error#_# {""type"":""Error"",""Error"":{""message"":""uhoh"", ""stack"":[{""file"":""errorFile"",""function"":""errorFunc"",""line"":22}]}}
";
                var context = new TestContext {
                    InputTestFile = "file"
                };
                var stream        = new StreamReader(new MemoryStream(Encoding.UTF8.GetBytes(json)));
                var processStream = new ProcessStream(new Mock <IProcessWrapper>().Object, stream);
                var callback      = new Mock <ITestMethodRunnerCallback>();

                var summary = reader.ClassUnderTest.Read(processStream, new TestOptions(), context, callback.Object, false);

                Assert.Equal(1, summary.Errors.Count);
                Assert.Equal("file", summary.Errors[0].InputTestFile);
                Assert.Equal("uhoh", summary.Errors[0].Message);
                Assert.Equal("errorFile", summary.Errors[0].Stack[0].File);
                Assert.Equal("errorFunc", summary.Errors[0].Stack[0].Function);
                Assert.Equal("22", summary.Errors[0].Stack[0].Line);
            }