/// <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); }
public static void AreEqual(TestModelData expected, TestModelData actual) { if (expected == null) { Assert.IsNull(actual); return; } AreEqual(expected.RootTest, actual.RootTest); }
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(); }
/// <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); }