private static TestState GetStateFromUFTResultsFile(string resultsFileFullPath, out string desc)
{
TestState finalState = TestState.Unknown;
desc = "";
var status = "";
var doc = new XmlDocument {PreserveWhitespace = true};
doc.Load(resultsFileFullPath);
string strFileName = Path.GetFileName(resultsFileFullPath);
if (strFileName.Equals("run_results.xml"))
{
XmlNodeList rNodeList = doc.SelectNodes("/Results/ReportNode/Data");
if (rNodeList == null)
{
desc = string.Format(Resources.XmlNodeNotExistError, "/Results/ReportNode/Data");
finalState = TestState.Error;
}
var node = rNodeList.Item(0);
XmlNode resultNode = ((XmlElement) node).GetElementsByTagName("Result").Item(0);
status = resultNode.InnerText;
}
else
{
var testStatusPathNode = doc.SelectSingleNode("//Report/Doc/NodeArgs");
if (testStatusPathNode == null)
{
desc = string.Format(Resources.XmlNodeNotExistError, "//Report/Doc/NodeArgs");
finalState = TestState.Error;
}
if (!testStatusPathNode.Attributes["status"].Specified)
finalState = TestState.Unknown;
status = testStatusPathNode.Attributes["status"].Value;
}
var result = (TestResult) Enum.Parse(typeof(TestResult), status);
if (result == TestResult.Passed || result == TestResult.Done)
{
finalState = TestState.Passed;
}
else if (result == TestResult.Warning)
{
finalState = TestState.Warning;
}
else
{
finalState = TestState.Failed;
}
return finalState;
}