Example #1
0
        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));
        }
Example #2
0
        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);
        }
Example #3
0
        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));
        }
Example #4
0
        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);
        }
Example #5
0
        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));
        }
Example #6
0
        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);
        }
Example #7
0
		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);
		}
Example #8
0
		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);

		}
Example #9
0
		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;
		}
Example #10
0
		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);
		}
Example #11
0
		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;
		}