public ResultObject(TestSuite suite, IAsyncConnection conn)
 {
   var rope = new Rope<char>();
   using (var writer = new Editor.RopeWriter(rope))
   {
     suite.Write(writer);
   }
   _amlLength = rope.Length;
   _count = suite.Tests.Count;
   _conn = conn;
   _text = new RopeTextSource(rope);
   _dataSet = new DataSet();
 }
Beispiel #2
0
        public static TestSuite ReadTestSuite(XmlReader reader)
        {
            var    result      = new TestSuite();
            string lastComment = null;
            string sessionId   = null;

            while (!reader.EOF)
            {
                if (reader.NodeType == XmlNodeType.Comment)
                {
                    lastComment = reader.Value;
                    reader.Read();
                }
                else if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.LocalName)
                    {
                    case "TestSuite":
                        result.Comment = lastComment;
                        lastComment    = null;
                        sessionId      = reader.GetAttribute("sessionId");
                        reader.Read();
                        break;

                    case "Init":
                        using (var r = reader.ReadSubtree())
                        {
                            ReadItems <ICommand>(result.Init, r, sessionId, ReadCommand);
                        }
                        break;

                    case "Tests":
                        lastComment = null;
                        while (!(reader.NodeType == XmlNodeType.EndElement && reader.LocalName == "Tests"))
                        {
                            if (reader.NodeType == XmlNodeType.Comment)
                            {
                                lastComment = reader.Value;
                                reader.Read();
                            }
                            else if (reader.NodeType == XmlNodeType.Element)
                            {
                                if (reader.LocalName == "Test")
                                {
                                    var test = new Test()
                                    {
                                        Comment = lastComment,
                                        Name    = reader.GetAttribute("name")
                                    };
                                    using (var r = reader.ReadSubtree())
                                    {
                                        ReadItems <ITestCommand>(test.Commands, r, sessionId, ReadTestCommand);
                                    }
                                    AddPrints(test.Commands);
                                    result.Tests.Add(test);
                                }
                                reader.Read();
                                lastComment = null;
                            }
                            else
                            {
                                reader.Read();
                            }
                        }
                        reader.Read();
                        break;

                    case "Cleanup":
                        using (var r = reader.ReadSubtree())
                        {
                            ReadItems <ICommand>(result.Cleanup, r, sessionId, ReadCommand);
                        }
                        break;

                    default:
                        using (var r = reader.ReadSubtree())
                        {
                            while (!r.EOF)
                            {
                                r.Read();
                            }
                        }
                        break;
                    }
                }
                else
                {
                    reader.Read();
                }
            }
            return(result);
        }