public int writeAttributes_9()
{
string strxml = "";
switch (CurVariation.Param.ToString())
{
case "DocumentType":
if (IsXPathDataModelReader())
{
CError.WriteLine("{0} does not support DocumentType node", readerType);
return TEST_SKIPPED;
}
strxml = "<!DOCTYPE Root[]><Root/>";
break;
case "CDATA":
if (IsXPathDataModelReader())
{
CError.WriteLine("{0} does not support CDATA node", readerType);
return TEST_SKIPPED;
}
strxml = "<root><![CDATA[Test]]></root>";
break;
case "Text":
strxml = "<root>Test</root>";
break;
case "ProcessingInstruction":
strxml = "<root><?pi test?></root>";
break;
case "Comment":
strxml = "<root><!-- comment --></root>";
break;
case "EntityReference":
if (!ReaderSupportsEntityRef())
{
CError.WriteLine("{0} does not support EntityRef node", readerType);
return TEST_SKIPPED;
}
strxml = "<!DOCTYPE root[<!ENTITY e \"Test Entity\"> ]><root>&e;</root>";
break;
case "SignificantWhitespace":
strxml = "<root xml:space=\"preserve\"> </root>";
break;
case "Whitespace":
if (ReaderStripsWhitespace())
{
CError.WriteLine("{0} strips whitespace nodes by default", readerType);
return TEST_SKIPPED;
}
strxml = "<root> </root>";
break;
}
XmlReader xr;
xr = CreateReader(new StringReader(strxml));
do
{ xr.Read(); }
while ((xr.NodeType.ToString() != CurVariation.Param.ToString()) && (xr.ReadState != ReadState.EndOfFile));
if (xr.ReadState == ReadState.EndOfFile || xr.NodeType.ToString() != CurVariation.Param.ToString())
{
xr.Dispose();
CError.WriteLine("Reader not positioned on correct node");
CError.WriteLine("ReadState: {0}", xr.ReadState);
CError.WriteLine("NodeType: {0}", xr.NodeType);
return TEST_FAIL;
}
using (XmlWriter w = CreateWriter())
{
try
{
if (CurVariation.Param.ToString() != "DocumentType")
w.WriteStartElement("root");
w.WriteAttributes(xr, false);
}
catch (XmlException e)
{
CError.WriteLineIgnore(e.ToString());
CError.Compare(w.WriteState, (CurVariation.Param.ToString() == "DocumentType") ? WriteState.Start : WriteState.Element, "WriteState should be Element");
return TEST_PASS;
}
finally
{
xr.Dispose();
}
}
CError.WriteLine("Did not throw exception");
return TEST_FAIL;
}