private TestSet ReadTestSet(Project project) { TestSet testSet = new TestSet(project); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: if (reader.Name.Equals("name")) { testSet.Name = reader.ReadElementContentAsString(); } else if (reader.Name.Equals("description")) { testSet.Description = GetDescription(); } else if (reader.Name.Equals("authentication")) { string name = null; for (int i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); if (reader.Name.Equals("ref")) { name = reader.Value; } } testSet.SetAuthentication(project.GetAuthenticationByName(name)); } else if (reader.Name.Equals("function")) { string refName = null; int waitInSeconds = 0; bool whenPreviousFunctionFailed = false; if (testSet.Functions == null) { testSet.Functions = new List<Function>(); } if (reader.HasAttributes) { for (int i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); if (reader.Name.Equals("ref")) { refName = reader.Value; } else if (reader.Name.Equals("whenPreviousFunctionFailed")) { string boolVal = reader.Value; if (boolVal != null) { whenPreviousFunctionFailed = (boolVal.Equals("true") || boolVal.Equals("on") || boolVal.Equals("1")); } } else if (reader.Name.Equals("waitInSeconds")) { waitInSeconds = Int32.Parse(reader.Value); } } if (!string.IsNullOrEmpty(refName)) { Function functionRef = project.GetFunctionByName(reader.Value); if (functionRef != null) { testSet.Functions.Add(functionRef); } } } if (string.IsNullOrEmpty(refName)) { Function function = ReadFunction(project); function.SetWaitInSeconds(waitInSeconds); function.SetWhenPreviousFunctionFailed(whenPreviousFunctionFailed); testSet.Functions.Add(function); } } break; case XmlNodeType.EndElement: if (reader.Name.Equals("testSet")) { return testSet; } break; } } return testSet; }