public void Default_Custom_ValueForLineInfoProvider(String param)
{
string xmlSrc = "<root><foo>FooText</foo><bar>BarText</bar></root>";
XmlSchemaInfo info = new XmlSchemaInfo();
int lineNum = -1;
int linePos = -1;
XmlSchemaValidator val = CreateValidator(CreateSchemaSetFromXml(xmlSrc));
switch (param)
{
case "default":
lineNum = 0;
linePos = 0;
break;
case "custom":
lineNum = 1111;
linePos = 2222;
val.LineInfoProvider = new CDummyLineInfo(lineNum, linePos);
break;
default:
Assert.True(false);
break;
}
val.Initialize();
val.ValidateElement("root", "", info);
val.ValidateEndOfAttributes(null);
val.ValidateElement("foo", "", info);
Assert.Equal(val.LineInfoProvider.LineNumber, lineNum);
Assert.Equal(val.LineInfoProvider.LinePosition, linePos);
val.SkipToEndElement(info);
try
{
val.ValidateElement("bar2", "", info);
Assert.True(false);
}
catch (XmlSchemaValidationException e)
{
Assert.Equal(e.LineNumber, lineNum);
Assert.Equal(e.LinePosition, linePos);
}
return;
}