Example #1
0
        /// <summary>
        /// Merges the current model with the specified one.
        /// </summary>
        /// <param name="other">The other model to be merged.</param>
        public void MergeWith(TestModelData other)
        {
            foreach (var test in other.RootTest.Children)
            {
                MergeSubtree(RootTest.Id, test);
            }

            annotations.AddRange(other.Annotations);
        }
Example #2
0
        public static void AreEqual(TestModelData expected, TestModelData actual)
        {
            if (expected == null)
            {
                Assert.IsNull(actual);
                return;
            }

            AreEqual(expected.RootTest, actual.RootTest);
        }
Example #3
0
        public void GetAndSetTestModel()
        {
            Report report = new Report();

            Assert.IsNull(report.TestModel);

            TestModelData value = new TestModelData();
            report.TestModel = value;
            Assert.AreSame(value, report.TestModel);
        }
 private static Report CreateReport(CodeLocation codeLocation)
 {
     var root = new TestData("root", "root", "root");
     var testData = new TestData(testId, "name", "fullName")
     {
         CodeLocation = codeLocation
     };
     root.Children.Add(testData);
     var testModelData = new TestModelData(root);
     return new Report { TestModel = testModelData };
 }
        public TestTreeNode BuildTree(IProgressMonitor progressMonitor, TestModelData testModelData,
            TreeBuilderOptions options)
        {
            var root = new TestDataNode(testModelData.RootTest);

            progressMonitor.Worked(1);

            PopulateNamespaceTree(progressMonitor, testModelData.RootTest.Children, 
                root, options);

            return root;
        }
        public TestTreeNode BuildTree(IProgressMonitor progressMonitor, 
            TestModelData testModelData, TreeBuilderOptions options)
        {
            var root = new TestDataNode(testModelData.RootTest);

            progressMonitor.Worked(1);

            foreach (var childTestData in testModelData.RootTest.Children)
            {
                PopulateMetadataTree(progressMonitor, options.TreeViewCategory, 
                    childTestData, null, root);
            }

            return root;
        }
        private void SetupAnnotationData(AnnotationType annotationType)
        {
            var testModelData = new TestModelData();
            testModelData.Annotations.Add(new AnnotationData(annotationType, CodeLocation.Unknown, 
                new CodeReference(), "message", "details"));

            var report = new Report
            {
                TestModel = testModelData
            };

            testController
                .Stub(x => x.ReadReport(null))
                .IgnoreArguments()
                .Repeat.Any()
                .Do((Action<ReadAction<Report>>)(action => action(report)));
        }
        public void Establish_context()
        {
            metadataTreeBuilder = new MetadataTreeBuilder();

            testModelData = new TestModelData();
            var assembly = CreateTestData("assembly");
            testModelData.RootTest.Children.Add(assembly);
            var fixture1 = CreateTestData("fixture1");
            var fixture2 = CreateTestData("fixture2");
            assembly.Children.AddRange(new[] { fixture1, fixture2 });
            var test1 = CreateTestData("test1");
            var test2 = CreateTestData("test2");
            fixture1.Children.AddRange(new[] { test1, test2 });
            var test3 = CreateTestData("test3");
            test3.Metadata.Add(Metadata, "metadata");
            test3.Metadata.Add(Metadata, "metadata2");
            fixture2.Children.Add(test3);
            var fixture3 = CreateTestData("fixture3");
            fixture3.Metadata.Add(Metadata, "metadata");
            assembly.Children.Add(fixture3);
            var test4 = CreateTestData("test4");
            test4.Metadata.Add(Metadata, "metadata");
            fixture3.Children.Add(test4);
        }
        public void Establish_context()
        {
            mocks = new MockRepository();
            namespaceTreeBuilder = new NamespaceTreeBuilder();

            testModelData = new TestModelData();
            var assembly = new TestData("assembly", "assembly", "assembly");
            testModelData.RootTest.Children.Add(assembly);

            var nsRootCodeElement = mocks.StrictMock<ICodeElementInfo>();
            var nsRootCodeReference = new CodeReference("assembly", null, null, null, null);
            var nsRoot = new Test("nsRoot", nsRootCodeElement);

            using (mocks.Record())
            {
                Expect.Call(nsRootCodeElement.CodeReference).Return(nsRootCodeReference);
                Expect.Call(nsRootCodeElement.GetCodeLocation()).Return(new CodeLocation("about:blank", 1, 1));
            }
            nsRoot.Kind = Gallio.Model.TestKinds.Namespace;
            nsRoot.IsTestCase = false;

            var nsRootTest = new TestData(nsRoot, true);
            assembly.Children.Add(nsRootTest);

            var nsLevel1CodeElement = mocks.StrictMock<ICodeElementInfo>();
            var nsLevel1CodeReference = new CodeReference("assembly", null, null, null, null);
            var nsLevel1 = new Test("nsLevel1", nsLevel1CodeElement);

            using (mocks.Record())
            {
                Expect.Call(nsLevel1CodeElement.CodeReference).Return(nsLevel1CodeReference);
                Expect.Call(nsLevel1CodeElement.GetCodeLocation()).Return(new CodeLocation("about:blank", 1, 1));
            }
            nsLevel1.Kind = Gallio.Model.TestKinds.Namespace;
            nsLevel1.IsTestCase = false;

            var nsLevel1Test = new TestData(nsLevel1, true);
            nsRootTest.Children.Add(nsLevel1Test);

            var nsLevel2CodeElement = mocks.StrictMock<ICodeElementInfo>();
            var nsLevel2CodeReference = new CodeReference("assembly", null, null, null, null);
            var nsLevel2 = new Test("nsLevel2", nsLevel2CodeElement);

            using (mocks.Record())
            {
                Expect.Call(nsLevel2CodeElement.CodeReference).Return(nsLevel2CodeReference);
                Expect.Call(nsLevel2CodeElement.GetCodeLocation()).Return(new CodeLocation("about:blank", 1, 1));
            }
            nsLevel2.Kind = Gallio.Model.TestKinds.Namespace;
            nsLevel2.IsTestCase = false;

            var nsLevel2Test = new TestData(nsLevel2, true);
            nsLevel1Test.Children.Add(nsLevel2Test);

            var nsLevel2aCodeElement = mocks.StrictMock<ICodeElementInfo>();
            var nsLevel2aCodeReference = new CodeReference("assembly", null, null, null, null);
            var nsLevel2a = new Test("nsLevel2a", nsLevel2aCodeElement);

            using (mocks.Record())
            {
                Expect.Call(nsLevel2aCodeElement.CodeReference).Return(nsLevel2aCodeReference);
                Expect.Call(nsLevel2aCodeElement.GetCodeLocation()).Return(new CodeLocation("about:blank", 1, 1));
            }
            nsLevel2a.Kind = Gallio.Model.TestKinds.Namespace;
            nsLevel2a.IsTestCase = false;

            var nsLevel2aTest = new TestData(nsLevel2a, true);
            nsLevel1Test.Children.Add(nsLevel2aTest);

            var fixture1CodeElement = mocks.StrictMock<ICodeElementInfo>();
            var fixture1CodeReference = new CodeReference("assembly", "nsRoot.nsLevel1.nsLevel2", "fixture1", null, null);
            var fixture1 = new Test("fixture1", fixture1CodeElement);

            using (mocks.Record())
            {
                Expect.Call(fixture1CodeElement.CodeReference).Return(fixture1CodeReference);
                Expect.Call(fixture1CodeElement.GetCodeLocation()).Return(new CodeLocation("about:blank", 1, 1));
            }
            fixture1.Kind = Gallio.Model.TestKinds.Fixture;
            fixture1.IsTestCase = false;

            var fixture1Test = new TestData(fixture1, true);
            nsLevel2Test.Children.Add(fixture1Test);

            var fixture2CodeElement = mocks.StrictMock<ICodeElementInfo>();
            var fixture2CodeReference = new CodeReference("assembly", "nsRoot.nsLevel1.nsLevel2a", "fixture2", null, null);
            var fixture2 = new Test("fixture2", fixture2CodeElement);

            using (mocks.Record())
            {
                Expect.Call(fixture2CodeElement.CodeReference).Return(fixture2CodeReference);
                Expect.Call(fixture2CodeElement.GetCodeLocation()).Return(new CodeLocation("about:blank", 1, 1));
            }
            fixture2.Kind = Gallio.Model.TestKinds.Fixture;
            fixture2.IsTestCase = false;

            var fixture2Test = new TestData(fixture2, true);
            nsLevel2aTest.Children.Add(fixture2Test);
        }
 public FileInfo Format(ICollection<TestStepRun> stepRuns, TestModelData modelData)
 {
     return Format(stepRuns, modelData, true);
 }
 public TestStepReportWriter(HtmlTestStepRunFormatter formatter, TextWriter writer, TestModelData testModelData)
 {
     this.formatter = formatter;
     this.writer = writer;
     this.testModelData = testModelData;
 }
 private void Format(TextWriter writer, IEnumerable<TestStepRun> stepRuns, TestModelData modelData, bool recurse)
 {
     var reportWriter = new TestStepReportWriter(this, writer, modelData);
     reportWriter.RenderReport(stepRuns, recurse);
 }
 private void Format(TextWriter writer, IEnumerable<TestStepRun> stepRuns, TestModelData modelData)
 {
     Format(writer, stepRuns, modelData, true);
 }
        private TestModelData MergeTestModelData()
        {
            var merged = new TestModelData();

            foreach (Report report in reports)
                merged.MergeWith(report.TestModel);

            return merged;
        }
        public FileInfo Format(ICollection<TestStepRun> stepRuns, TestModelData modelData, bool recurse)
        {
            cacheGroup.Create();

            var htmlFile = reportFilePool.GetNext();

            var fileStream = htmlFile.Open(FileMode.Create, FileAccess.Write, 
                FileShare.ReadWrite | FileShare.Delete);

            using (var htmlFileWriter = new StreamWriter(fileStream, new UTF8Encoding(false)))
            {
                Format(htmlFileWriter, stepRuns, modelData, recurse);
            }

            return htmlFile;
        }
        /// <summary>
        /// Displays information about a set of test step runs, using additional
        /// information from the test model when available.
        /// </summary>
        /// <param name="testStepRuns">The test step runs.</param>
        /// <param name="testModelData">The test model data, or null if not available.</param>
        /// <param name="recurse">Show child test results recursively</param>
        public void Show(ICollection<TestStepRun> testStepRuns, TestModelData testModelData, bool recurse)
        {
            if (testStepRuns == null || testStepRuns.Contains(null))
                throw new ArgumentNullException("testStepRuns");

            if (testStepRuns.Count == 0)
            {
                ClearNoUpdate();
            }
            else
            {
                EnsureFormatter();
                htmlFile = formatter.Format(testStepRuns, testModelData, recurse);
            }

            UpdateAsync();
        }
Example #17
0
        /// <summary>
        /// Merges the current model with the specified one.
        /// </summary>
        /// <param name="other">The other model to be merged.</param>
        public void MergeWith(TestModelData other)
        {
            foreach (var test in other.RootTest.Children)
                MergeSubtree(RootTest.Id, test);

            annotations.AddRange(other.Annotations);
        }