예제 #1
0
        //--- Class Methods ---
        private static void Test(string name, XmlRender xmlRender, CaseFolding caseFolding, string doctype, bool format)
        {
            string source;
            string expected;

            ReadTest(name, out source, out expected);
            expected = expected.Trim().Replace("\r", "");
            string actual;

            // determine how the document should be written back
            XmlReaderTestCallback callback;

            switch (xmlRender)
            {
            case XmlRender.Doc:

                // test writing sgml reader using xml document load
                callback = (reader, writer) =>
                {
                    var doc = new XmlDocument();
                    doc.Load(reader);
                    doc.WriteTo(writer);
                };
                break;

            case XmlRender.DocClone:

                // test writing sgml reader using xml document load and clone
                callback = (reader, writer) =>
                {
                    var doc = new XmlDocument();
                    doc.Load(reader);
                    var clone = doc.Clone();
                    clone.WriteTo(writer);
                };
                break;

            case XmlRender.Passthrough:

                // test writing sgml reader directly to xml writer
                callback = (reader, writer) =>
                {
                    reader.Read();
                    while (!reader.EOF)
                    {
                        writer.WriteNode(reader, true);
                    }
                };
                break;

            default:
                throw new ArgumentException("unknown value", "xmlRender");
            }
            actual = RunTest(caseFolding, doctype, format, source, callback);
            Assert.AreEqual(expected, actual);
        }
		//--- Class Methods ---
		private static void Test(string name, XmlRender xmlRender, CaseFolding caseFolding, string doctype, bool format)
		{
			string source;
			string expected;
			ReadTest(name, out source, out expected);
			expected = expected.Trim().Replace("\r", "");
			string actual;

			// determine how the document should be written back
			XmlReaderTestCallback callback;
			switch (xmlRender)
			{
				case XmlRender.Doc:

					// test writing sgml reader using xml document load
					callback = (reader, writer) =>
					{
						var doc = new XmlDocument();
						doc.Load(reader);
						doc.WriteTo(writer);
					};
					break;
				case XmlRender.DocClone:

					// test writing sgml reader using xml document load and clone
					callback = (reader, writer) =>
					{
						var doc = new XmlDocument();
						doc.Load(reader);
						var clone = doc.Clone();
						clone.WriteTo(writer);
					};
					break;
				case XmlRender.Passthrough:

					// test writing sgml reader directly to xml writer
					callback = (reader, writer) =>
					{
						reader.Read();
						while (!reader.EOF)
						{
							writer.WriteNode(reader, true);
						}
					};
					break;
				default:
					throw new ArgumentException("unknown value", "xmlRender");
			}
			actual = RunTest(caseFolding, doctype, format, source, callback);
			Assert.AreEqual(expected, actual);
		}