public static TestResult ReadTestResult(XElement node) { if (!node.Name.LocalName.Equals("TestResult")) { throw new InternalErrorException(); } var status = (TestStatus)Enum.Parse(typeof(TestStatus), node.Attribute("Status").Value); var path = TestPath.Read(node.Element("TestPath")); var result = new TestResult(path, status); var elapsedTime = node.Element("ElapsedTime"); if (elapsedTime != null) { result.ElapsedTime = TimeSpan.FromMilliseconds(int.Parse(elapsedTime.Value)); } foreach (var error in node.Elements("Error")) { result.AddError(ReadError(error)); } foreach (var message in node.Elements("Message")) { result.AddMessage(message.Attribute("Text").Value); } foreach (var log in node.Elements("LogEntry")) { result.AddLogMessage(ReadLogEntry(log)); } foreach (var child in node.Elements("TestResult")) { result.AddChild(ReadTestResult(child)); } return(result); }
public static TestResult ReadTestResult(XElement node) { if (!node.Name.LocalName.Equals("TestResult")) { throw new InternalErrorException(); } var name = TestSerializer.ReadTestName(node.Element("TestName")); var status = (TestStatus)Enum.Parse(typeof(TestStatus), node.Attribute("Status").Value); var result = new TestResult(name, status); var path = node.Element("TestPath"); if (path != null) { result.Path = new PathWrapper(path); } foreach (var error in node.Elements("Error")) { result.AddError(ReadError(error)); } foreach (var message in node.Elements("Message")) { result.AddMessage(message.Attribute("Text").Value); } foreach (var log in node.Elements("LogEntry")) { result.AddLogMessage(ReadLogEntry(log)); } foreach (var child in node.Elements("TestResult")) { result.AddChild(ReadTestResult(child)); } return(result); }