private static TestClass ProcessTestClass(XmlReader reader, ReportViewerNameTable names) { string testNamespace = reader.GetAttribute(names.NamespaceAttribute); string testName = reader.GetAttribute(names.NameAttribute); List <Test> testList = null; while (reader.Read()) { XmlNodeType nodeType = reader.NodeType; if (nodeType == XmlNodeType.Element) { string localName = reader.LocalName; if (TestElementName(localName, names.TestElement)) { if (testList == null) { testList = new List <Test>(); } testList.Add(ProcessTest(reader, names)); } else { Debug.Fail("Element should have been blocked by validing reader."); PassEndElement(reader); } } else if (nodeType == XmlNodeType.EndElement) { break; } } return(new TestClass(testName, testNamespace, testList)); }
private static List <TestClass> ProcessTestClasses(XmlReader reader, ReportViewerNameTable names) { if (reader.IsEmptyElement) { return(null); } List <TestClass> retVal = null; while (reader.Read()) { XmlNodeType nodeType = reader.NodeType; if (nodeType == XmlNodeType.Element) { string localName = reader.LocalName; if (TestElementName(localName, names.TestClassElement)) { if (retVal == null) { retVal = new List <TestClass>(); } retVal.Add(ProcessTestClass(reader, names)); } else { Debug.Fail("Element should have been blocked by validing reader."); PassEndElement(reader); } } } return(retVal); }
private static Test ProcessTest(XmlReader reader, ReportViewerNameTable names) { string name = reader.GetAttribute(names.NameAttribute); string result = reader.GetAttribute(names.ResultAttribute); string content = reader.ReadInnerXml(); return(new Test(name, result, content)); }
public static IList <ReportSuite> LoadReportSuitesFile(string reportFile) { List <ReportSuite> retVal = null; if (!File.Exists(reportFile)) { return(null); } FileInfo reportSuiteFileInfo = new FileInfo(reportFile); string baseDirectory = reportSuiteFileInfo.DirectoryName; using (FileStream fileStream = reportSuiteFileInfo.OpenRead()) { ReportViewerNameTable names = ReportViewerSchema.Names; using (XmlTextReader reportSuitesReader = new XmlTextReader(new StreamReader(fileStream), names)) { using (XmlReader reader = XmlReader.Create(reportSuitesReader, ReportViewerSchema.ReaderSettings)) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && !reader.IsEmptyElement) { Debug.Assert(TestElementName(reader.LocalName, names.SuitesElement)); // Only value allowed by the validating loader while (reader.Read()) { XmlNodeType nodeType1 = reader.NodeType; if (nodeType1 == XmlNodeType.Element) { // Process suite element Debug.Assert(TestElementName(reader.LocalName, names.SuiteElement)); // Only value allowed by the validating loader string suiteName = reader.GetAttribute(names.NameAttribute); IList <ReportAssembly> assemblies = null; if (!reader.IsEmptyElement) { assemblies = ProcessReportAssemblies(reader, names, baseDirectory); } if (retVal == null) { retVal = new List <ReportSuite>(); } retVal.Add(new ReportSuite(suiteName, assemblies)); } else if (nodeType1 == XmlNodeType.EndElement) { break; } } } } } } } return(retVal); }
private static ReportAssembly ProcessReportAssembly(XmlReader reader, ReportViewerNameTable names, string baseDirectory) { string location = reader.GetAttribute(names.LocationAttribute); List <TestClass> testclasses; testclasses = ProcessTestClasses(reader, names); if (!reader.IsEmptyElement) { PassEndElement(reader); } return(new ReportAssembly(location, baseDirectory, testclasses)); }
private static IList <ReportAssembly> ProcessReportAssemblies(XmlReader reader, ReportViewerNameTable names, string baseDirectory) { if (reader.IsEmptyElement) { return(null); } List <ReportAssembly> retVal = null; while (reader.Read()) { XmlNodeType nodeType = reader.NodeType; if (nodeType == XmlNodeType.Element) { string localName = reader.LocalName; Debug.Assert(TestElementName(localName, names.TestAssemblyElement)); if (retVal == null) { retVal = new List <ReportAssembly>(); } retVal.Add(ProcessReportAssembly(reader, names, baseDirectory)); } else if (nodeType == XmlNodeType.EndElement) { break; } } return(retVal); }
private static Test ProcessTest(XmlReader reader, ReportViewerNameTable names) { string name = reader.GetAttribute(names.NameAttribute); string result = reader.GetAttribute(names.ResultAttribute); string content = reader.ReadInnerXml(); return new Test(name, result, content); }
private static TestClass ProcessTestClass(XmlReader reader, ReportViewerNameTable names) { string testNamespace = reader.GetAttribute(names.NamespaceAttribute); string testName = reader.GetAttribute(names.NameAttribute); List<Test> testList = null; while(reader.Read()) { XmlNodeType nodeType = reader.NodeType; if (nodeType == XmlNodeType.Element) { string localName = reader.LocalName; if (TestElementName(localName, names.TestElement)) { if (testList == null) { testList = new List<Test>(); } testList.Add(ProcessTest(reader, names)); } else { Debug.Fail("Element should have been blocked by validing reader."); PassEndElement(reader); } } else if (nodeType == XmlNodeType.EndElement) { break; } } return new TestClass(testName, testNamespace, testList); }
private static List<TestClass> ProcessTestClasses(XmlReader reader, ReportViewerNameTable names) { if (reader.IsEmptyElement) { return null; } List<TestClass> retVal = null; while (reader.Read()) { XmlNodeType nodeType = reader.NodeType; if (nodeType == XmlNodeType.Element) { string localName = reader.LocalName; if (TestElementName(localName, names.TestClassElement)) { if (retVal == null) { retVal = new List<TestClass>(); } retVal.Add(ProcessTestClass(reader, names)); } else { Debug.Fail("Element should have been blocked by validing reader."); PassEndElement(reader); } } } return retVal; }
private static ReportAssembly ProcessReportAssembly(XmlReader reader, ReportViewerNameTable names, string baseDirectory) { string location = reader.GetAttribute(names.LocationAttribute); List<TestClass> testclasses; testclasses = ProcessTestClasses(reader, names); if (!reader.IsEmptyElement) { PassEndElement(reader); } return new ReportAssembly(location,baseDirectory , testclasses); }
private static IList<ReportAssembly> ProcessReportAssemblies(XmlReader reader, ReportViewerNameTable names, string baseDirectory) { if (reader.IsEmptyElement) { return null; } List<ReportAssembly> retVal = null; while (reader.Read()) { XmlNodeType nodeType = reader.NodeType; if (nodeType == XmlNodeType.Element) { string localName = reader.LocalName; Debug.Assert(TestElementName(localName, names.TestAssemblyElement)); if (retVal == null) { retVal = new List<ReportAssembly>(); } retVal.Add(ProcessReportAssembly(reader, names, baseDirectory)); } else if (nodeType == XmlNodeType.EndElement) { break; } } return retVal; }