public void EventsTests(object param0, object param1, object param2, object param3)
{
XslCompiledTransform xslt = new XslCompiledTransform();
XsltArgumentList argList = new XsltArgumentList();
//Collect the test data
string SourceFile = FullFilePath("message.xml");
string XslFile = FullFilePath(param0.ToString());
string XslMessageTerminate = param1.ToString();
string EventHandlerExists = param2.ToString();
string Baseline = "baseline" + Path.DirectorySeparatorChar + param3.ToString();
OutFile = "Message.txt";
//Check if the EventHandler Exists
if (EventHandlerExists == "yes")
argList.XsltMessageEncountered += new XsltMessageEncounteredEventHandler(argList_XsltMessageEncountered);
EventRaised = false;
//Delete the output file if it exists
if (File.Exists(OutFile))
File.Delete(OutFile);
//Create a navigator over the source document
XPathDocument doc = new XPathDocument(SourceFile);
XPathNavigator nav = doc.CreateNavigator();
//Create a temporary output stream
StreamWriter sw = new StreamWriter(new MemoryStream());
XmlWriter xw = new XmlTextWriter(sw);
//Compile the Stylesheet
_output.WriteLine(XslFile);
xslt.Load(XslFile);
if (XslMessageTerminate == "yes")
{
try
{
xslt.Transform(nav, argList, xw);
_output.WriteLine("**** XsltException NOT Raised ****");
Assert.True(false);
}
catch (XsltException e)
{
_output.WriteLine("---- {0} Raised ----", e.ToString());
if (EventHandlerExists == "no")
SerializeMessage(OutFile, e.Message);
}
}
else
{
xslt.Transform(nav, argList, xw);
}
//Verify if the Event is raised and the result is verified
if (EventRaised)
{
VerifyResult(Baseline, OutFile);
return;
}
else
{
if (EventHandlerExists == "yes")
{
_output.WriteLine("**** OnMessageEvent NOT Raised ****");
Assert.True(false);
}
else
{
return;
}
}
}
}