Ejemplo n.º 1
0
 public static void UpdateWith(CacheMessages message)
 {
     foreach (var item in message.TestsToRemove)
     {
         var str = ConvertFromRunner(item);
         Logger.Write("removing test. " + str);
         _status.Remove(str);
         EntryCache.InvalidateNoUpdate(str);
     }
     foreach (var item in message.FailedToAdd)
     {
         var str = ConvertFromRunner(item);
         Logger.Write("Adding failed test. " + str);
         _status[str] = new TestStatusNode {
             Name = item.Test.Name, status = TestStatus.Fail, text = item.Test.Message
         };
         EntryCache.InvalidateNoUpdate(str);
     }
     foreach (var item in message.IgnoredToAdd)
     {
         var str = ConvertFromRunner(item);
         Logger.Write("Adding ignored test. " + str);
         _status[str] = new TestStatusNode {
             Name = item.Test.Name, status = TestStatus.Ignored, text = item.Test.Message
         };
         EntryCache.InvalidateNoUpdate(str);
     }
 }
Ejemplo n.º 2
0
        private void removeItems(CacheMessages cache)
        {
            var toRemove = new List <ListViewItem>();

            foreach (ListViewItem listItem in listViewFeedback.Items)
            {
                if (listItem.Tag.GetType() == typeof(CacheBuildMessage))
                {
                    var item = (CacheBuildMessage)listItem.Tag;
                    if (cache.ErrorsToRemove.Count(x => x.Equals(item)) > 0 || cache.WarningsToRemove.Count(x => x.Equals(item)) > 0)
                    {
                        toRemove.Add(listItem);
                    }
                }
                if (listItem.Tag.GetType() == typeof(CacheTestMessage))
                {
                    var item = (CacheTestMessage)listItem.Tag;
                    if (existsIn(cache.TestsToRemove, item))
                    {
                        toRemove.Add(listItem);
                    }
                }
            }
            toRemove.ForEach(x => listViewFeedback.Items.Remove(x));
        }
Ejemplo n.º 3
0
 private void handle(CacheMessages cacheMessages)
 {
     _syncContext.Post(x =>
     {
         lock (_messagLock)
         {
             Handle((CacheMessages)x);
             label1.Refresh();
         }
     }, cacheMessages);
 }
Ejemplo n.º 4
0
        public void normal_method_resolves_ignored_when_present()
        {
            var msg = new CacheMessages();

            msg.AddIgnored(new CacheTestMessage("foo.dll", new TestResult(TestRunner.NUnit, TestRunStatus.Ignored, "Foo.Bar.Baz", "ignore message")));
            CurrentTestStatuses.UpdateWith(msg);
            var status = CurrentTestStatuses.GetStatusOf("System.Void Foo.Bar::Baz()");

            Assert.IsNotNull(status);
            Assert.AreEqual("ignore message", status.text);
            Assert.AreEqual(TestStatus.Ignored, status.status);
            Assert.AreEqual("Foo.Bar.Baz", status.Name);
            CurrentTestStatuses.Clear();
        }
Ejemplo n.º 5
0
        public void simpletesting_resolves_failing_when_present()
        {
            var msg = new CacheMessages();

            msg.AddFailed(new CacheTestMessage("foo.dll", new TestResult(TestRunner.SimpleTesting, TestRunStatus.Failed, "Foo.Bar.Baz", "fail message")));
            CurrentTestStatuses.UpdateWith(msg);
            var status = CurrentTestStatuses.GetStatusOf("Simple.Testing.ClientFramework.Specification Foo.Bar::Baz()");

            Assert.IsNotNull(status);
            Assert.AreEqual("fail message", status.text);
            Assert.AreEqual(TestStatus.Fail, status.status);
            Assert.AreEqual("Foo.Bar.Baz", status.Name);
            CurrentTestStatuses.Clear();
        }
Ejemplo n.º 6
0
        public void mspec_resolves_failing_when_present()
        {
            var msg = new CacheMessages();

            msg.AddFailed(new CacheTestMessage("foo.dll", new TestResult(TestRunner.MSpec, TestRunStatus.Failed, "Foo.Bar.Baz", "fail message")));
            CurrentTestStatuses.UpdateWith(msg);
            var status = CurrentTestStatuses.GetStatusOf("Machine.Specifications.It Foo.Bar.Baz::LOLS");

            Assert.IsNotNull(status);
            Assert.AreEqual("fail message", status.text);
            Assert.AreEqual(TestStatus.Fail, status.status);
            Assert.AreEqual("Foo.Bar.Baz", status.Name);
            CurrentTestStatuses.Clear();
        }
Ejemplo n.º 7
0
        public void method_with_parens_resolves_to_on_without()
        {
            var msg = new CacheMessages();

            msg.AddFailed(new CacheTestMessage("foo.dll", new TestResult(TestRunner.NUnit, TestRunStatus.Failed, "Foo.Bar.Baz(1,2,3)", "fail message")));
            CurrentTestStatuses.UpdateWith(msg);
            var status = CurrentTestStatuses.GetStatusOf("System.Void Foo.Bar::Baz(int, int, int)");

            Assert.IsNotNull(status);
            Assert.AreEqual("fail message", status.text);
            Assert.AreEqual(TestStatus.Fail, status.status);
            Assert.AreEqual("Foo.Bar.Baz(1,2,3)", status.Name);
            CurrentTestStatuses.Clear();
        }
Ejemplo n.º 8
0
        public void normal_method_resolves_passed_after_being_failed()
        {
            var msg = new CacheMessages();

            msg.AddIgnored(new CacheTestMessage("foo.dll", new TestResult(TestRunner.NUnit, TestRunStatus.Failed, "Foo.Bar.Baz", "ignore message")));
            CurrentTestStatuses.UpdateWith(msg);
            msg = new CacheMessages();
            msg.RemoveTest(new CacheTestMessage("foo.dll", new TestResult(TestRunner.NUnit, TestRunStatus.Ignored, "Foo.Bar.Baz")));
            CurrentTestStatuses.UpdateWith(msg);
            var status = CurrentTestStatuses.GetStatusOf("System.Void Foo.Bar::Baz()");

            Assert.AreEqual(TestStatus.Pass, status.status);
            Assert.AreEqual("", status.text);
        }
Ejemplo n.º 9
0
        private new void Handle(CacheMessages cache)
        {
            object selected = null;

            if (listViewFeedback.SelectedItems.Count == 1)
            {
                selected = listViewFeedback.SelectedItems[0].Tag;
            }

            listViewFeedback.SuspendLayout();
            removeItems(cache);
            if (_showErrors)
            {
                foreach (var error in cache.ErrorsToAdd)
                {
                    addFeedbackItem("Build error", formatBuildResult(error), Color.Red, error, selected, 0);
                }
            }

            if (_showFailing)
            {
                var position = getFirstItemPosition(new[] { "Test failed", "Build warning", "Test ignored" });
                foreach (var failed in cache.FailedToAdd)
                {
                    addFeedbackItem("Test failed", formatTestResult(failed), Color.Red, failed, selected, position);
                }
            }

            if (_showWarnings)
            {
                var position = getFirstItemPosition(new[] { "Build warning", "Test ignored" });
                foreach (var warning in cache.WarningsToAdd)
                {
                    addFeedbackItem("Build warning", formatBuildResult(warning), Color.Black, warning, selected, position);
                }
            }

            if (_showIgnored)
            {
                var position = getFirstItemPosition(new[] { "Test ignored" });
                foreach (var ignored in cache.IgnoredToAdd)
                {
                    addFeedbackItem("Test ignored", formatTestResult(ignored), Color.Black, ignored, selected, position);
                }
            }
            listViewFeedback.ResumeLayout();
        }
Ejemplo n.º 10
0
        public void Should_serialize_Cache_message2()
        {
            var message = new CacheMessages();

            message.AddWarning(new CacheBuildMessage("project3", new BuildMessage()
            {
                ErrorMessage = "warning message", File = "warning file", LineNumber = 3, LinePosition = 4
            }));

            var failed = new TestResult(TestRunner.Any, TestRunStatus.Failed, "AutoTest.Test.Core.Messaging.MessageConsumers.ProjectChangeConsumerTest.Should_run_tests");

            failed.Message    = "Rhino.Mocks.Exceptions.ExpectationViolationException : ITestRunner.RunTests(any); Expected #1, Actual #0.";
            failed.StackTrace = new StackLineMessage[]
            {
                new StackLineMessage("Rhino.Mocks.RhinoMocksExtensions.AssertWasCalled[T](T mock, Action`1 action, Action`1 setupConstraints)", "", 0),
                new StackLineMessage("AutoTest.Test.Core.Messaging.MessageConsumers.ProjectChangeConsumerTest.Should_run_tests()", @"c:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\Core\Messaging\MessageConsumers\ProjectChangeConsumerTest.cs", 122)
            };
            message.AddFailed(new CacheTestMessage(@"C:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\bin\Debug\AutoTest.Test.dll", failed));

            failed            = new TestResult(TestRunner.Any, TestRunStatus.Failed, "AutoTest.Test.Core.Messaging.MessageConsumers.ProjectChangeConsumerTest.Should_run_builds");
            failed.Message    = "Rhino.Mocks.Exceptions.ExpectationViolationException : IBuildRunner.RunBuild(\"C:\\Users\\ack\\src\\AutoTest.Net\\src\\AutoTest.Test\\bin\\Debug\\someProject.csproj\", \"C:\\Users\\ack\\src\\AutoTest.Net\\src\\AutoTest.Test\\bin\\Debug\\AutoTest.Test.dll\"); Expected #1, Actual #0.";
            failed.StackTrace = new StackLineMessage[]
            {
                new StackLineMessage("Rhino.Mocks.RhinoMocksExtensions.AssertWasCalled[T](T mock, Action`1 action, Action`1 setupConstraints)", "", 0),
                new StackLineMessage("Rhino.Mocks.RhinoMocksExtensions.AssertWasCalled[T](T mock, Action`1 action)", "", 0),
                new StackLineMessage("AutoTest.Test.Core.Messaging.MessageConsumers.ProjectChangeConsumerTest.Should_run_builds()", @"c:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\Core\Messaging\MessageConsumers\ProjectChangeConsumerTest.cs", 91)
            };
            message.AddFailed(new CacheTestMessage(@"C:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\bin\Debug\AutoTest.Test.dll", failed));

            failed            = new TestResult(TestRunner.Any, TestRunStatus.Failed, "AutoTest.Test.Core.Messaging.MessageConsumers.ProjectChangeConsumerTest.Should_pre_process_run_information");
            failed.Message    = "Rhino.Mocks.Exceptions.ExpectationViolationException : IPreProcessTestruns.PreProcess(any); Expected #1, Actual #0.";
            failed.StackTrace = new StackLineMessage[]
            {
                new StackLineMessage("Rhino.Mocks.RhinoMocksExtensions.AssertWasCalled[T](T mock, Action`1 action, Action`1 setupConstraints)", "", 0),
                new StackLineMessage("AutoTest.Test.Core.Messaging.MessageConsumers.ProjectChangeConsumerTest.Should_pre_process_run_information()", @"c:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\Core\Messaging\MessageConsumers\ProjectChangeConsumerTest.cs", 160)
            };
            message.AddFailed(new CacheTestMessage(@"C:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\bin\Debug\AutoTest.Test.dll", failed));

            var output = serializeDeserialize(message);

            Assert.IsNotNull(output);
        }
Ejemplo n.º 11
0
        private void removeItems(CacheMessages cache)
        {
            foreach (var item in cache.ErrorsToRemove)
            {
                _removeBuildItem((itm) => itm.Equals(item));
            }
            foreach (var item in cache.WarningsToRemove)
            {
                _removeBuildItem((itm) => itm.Equals(item));
            }

            foreach (var item in cache.TestsToRemove)
            {
                _removeTest((t) => {
                    return
                    (t.Assembly.Equals(item.Assembly) &&
                     t.Test.Runner.Equals(item.Test.Runner) &&
                     t.Test.Name.Equals(item.Test.Name));
                });
            }
        }
Ejemplo n.º 12
0
        private CacheMessages buildCacheMessage()
        {
            var cache   = BootStrapper.Services.Locate <IRunResultCache>();
            var delta   = cache.PopDeltas();
            var message = new CacheMessages();

            foreach (var error in delta.AddedErrors)
            {
                message.AddError(new CacheBuildMessage(error.Key, error.Value));
            }
            foreach (var error in delta.RemovedErrors)
            {
                message.RemoveError(new CacheBuildMessage(error.Key, error.Value));
            }

            foreach (var warning in delta.AddedWarnings)
            {
                message.AddWarning(new CacheBuildMessage(warning.Key, warning.Value));
            }
            foreach (var warning in delta.RemovedWarnings)
            {
                message.RemoveWarning(new CacheBuildMessage(warning.Key, warning.Value));
            }

            foreach (var failed in getTests(delta.AddedTests, TestRunStatus.Failed))
            {
                message.AddFailed(new CacheTestMessage(failed.Key, failed.Value));
            }
            foreach (var ignored in getTests(delta.AddedTests, TestRunStatus.Ignored))
            {
                message.AddIgnored(new CacheTestMessage(ignored.Key, ignored.Value));
            }

            foreach (var test in delta.RemovedTests)
            {
                message.RemoveTest(new CacheTestMessage(test.Key, test.Value));
            }

            return(message);
        }
Ejemplo n.º 13
0
        private new void Handle(CacheMessages cache)
        {
            _storeSelected();

            removeItems(cache);
            if (_showErrors)
            {
                foreach (var error in cache.ErrorsToAdd)
                {
                    addFeedbackItem("Build error", formatBuildResult(error), Color.Red, error);
                }
            }

            if (_showFailing)
            {
                foreach (var failed in cache.FailedToAdd)
                {
                    addFeedbackItem("Test failed", formatTestResult(failed), Color.Red, failed);
                }
            }

            if (_showWarnings)
            {
                foreach (var warning in cache.WarningsToAdd)
                {
                    addFeedbackItem("Build warning", formatBuildResult(warning), Color.Black, warning);
                }
            }

            if (_showIgnored)
            {
                foreach (var ignored in cache.IgnoredToAdd)
                {
                    addFeedbackItem("Test ignored", formatTestResult(ignored), Color.Black, ignored);
                }
            }

            _restoreSelected(isSame);
        }
Ejemplo n.º 14
0
        public void Should_serialize_Cache_message()
        {
            var message = new CacheMessages();

            message.AddError(new CacheBuildMessage("project1", new BuildMessage()
            {
                ErrorMessage = "message", File = "file", LineNumber = 1, LinePosition = 2
            }));
            message.RemoveError(new CacheBuildMessage("project1", new BuildMessage()
            {
                ErrorMessage = "message to remove", File = "file", LineNumber = 1, LinePosition = 2
            }));
            message.AddError(new CacheBuildMessage("project2", new BuildMessage()
            {
                ErrorMessage = "message2", File = "file2", LineNumber = 1, LinePosition = 2
            }));
            message.AddWarning(new CacheBuildMessage("project3", new BuildMessage()
            {
                ErrorMessage = "warning message", File = "warning file", LineNumber = 3, LinePosition = 4
            }));
            message.RemoveWarning(new CacheBuildMessage("project3", new BuildMessage()
            {
                ErrorMessage = "warning message to remove", File = "warning file", LineNumber = 3, LinePosition = 4
            }));

            var failed = new TestResult(TestRunner.Any, TestRunStatus.Failed, "test name");

            failed.Message    = "message";
            failed.StackTrace = new StackLineMessage[] { new StackLineMessage("stackmethod", "stack file", 5) };
            message.AddFailed(new CacheTestMessage("assembly1", failed));

            var failed2 = new TestResult(TestRunner.Any, TestRunStatus.Failed, "test name");

            failed2.Message    = "message";
            failed2.StackTrace = new StackLineMessage[] { new StackLineMessage("stackmethod", "stack file", 5) };
            message.AddFailed(new CacheTestMessage("assembly2", failed2));

            var ignored = new TestResult(TestRunner.Any, TestRunStatus.Ignored, "test name ignored");

            ignored.Message    = "message ignored";
            ignored.StackTrace = new StackLineMessage[] { new StackLineMessage("stackmethod ignored", "", 6) };
            message.AddIgnored(new CacheTestMessage("assembly2", ignored));

            ignored            = new TestResult(TestRunner.Any, TestRunStatus.Ignored, "test name ignored");
            ignored.Message    = "message ignored to remove";
            ignored.StackTrace = new StackLineMessage[] { new StackLineMessage("stackmethod ignored", "", 6) };
            message.RemoveTest(new CacheTestMessage("assembly2", ignored));

            var output = serializeDeserialize(message);

            Assert.AreEqual(2, output.ErrorsToAdd.Length);
            Assert.AreEqual("project1", output.ErrorsToAdd[0].Project);
            Assert.AreEqual("message", output.ErrorsToAdd[0].BuildItem.ErrorMessage);
            Assert.AreEqual("file", output.ErrorsToAdd[0].BuildItem.File);
            Assert.AreEqual(1, output.ErrorsToAdd[0].BuildItem.LineNumber);
            Assert.AreEqual(2, output.ErrorsToAdd[0].BuildItem.LinePosition);

            Assert.AreEqual(1, output.ErrorsToRemove.Length);
            Assert.AreEqual("message to remove", output.ErrorsToRemove[0].BuildItem.ErrorMessage);

            Assert.AreEqual(1, output.WarningsToAdd.Length);
            Assert.AreEqual("project3", output.WarningsToAdd[0].Project);
            Assert.AreEqual("warning message", output.WarningsToAdd[0].BuildItem.ErrorMessage);
            Assert.AreEqual("warning file", output.WarningsToAdd[0].BuildItem.File);
            Assert.AreEqual(3, output.WarningsToAdd[0].BuildItem.LineNumber);
            Assert.AreEqual(4, output.WarningsToAdd[0].BuildItem.LinePosition);

            Assert.AreEqual(1, output.WarningsToRemove.Length);
            Assert.AreEqual("warning message to remove", output.WarningsToRemove[0].BuildItem.ErrorMessage);

            Assert.AreEqual(2, output.FailedToAdd.Length);
            Assert.AreEqual("assembly1", output.FailedToAdd[0].Assembly);
            Assert.AreEqual(TestRunStatus.Failed, output.FailedToAdd[0].Test.Status);
            Assert.AreEqual("test name", output.FailedToAdd[0].Test.Name);
            Assert.AreEqual("message", output.FailedToAdd[0].Test.Message);
            Assert.AreEqual("stackmethod", output.FailedToAdd[0].Test.StackTrace[0].Method);
            Assert.AreEqual("stack file", output.FailedToAdd[0].Test.StackTrace[0].File);
            Assert.AreEqual(5, output.FailedToAdd[0].Test.StackTrace[0].LineNumber);

            Assert.AreEqual(1, output.IgnoredToAdd.Length);
            Assert.AreEqual("assembly2", output.IgnoredToAdd[0].Assembly);
            Assert.AreEqual(TestRunStatus.Ignored, output.IgnoredToAdd[0].Test.Status);
            Assert.AreEqual("test name ignored", output.IgnoredToAdd[0].Test.Name);
            Assert.AreEqual("message ignored", output.IgnoredToAdd[0].Test.Message);
            Assert.AreEqual("stackmethod ignored", output.IgnoredToAdd[0].Test.StackTrace[0].Method);
            Assert.AreEqual("", output.IgnoredToAdd[0].Test.StackTrace[0].File);
            Assert.AreEqual(6, output.IgnoredToAdd[0].Test.StackTrace[0].LineNumber);

            Assert.AreEqual(1, output.TestsToRemove.Length);
            Assert.AreEqual("message ignored to remove", output.TestsToRemove[0].Test.Message);
        }
Ejemplo n.º 15
0
 private void handle(CacheMessages cacheMessages)
 {
     Handle(cacheMessages);
 }