Exemplo n.º 1
0
 protected IFixtureTable AddFixtureTable(IFixtureTable fixturetable)
 {
     AddChildNode(fixturetable);
     return(fixturetable);
 }
Exemplo n.º 2
0
        public void Parse(IRedefineTestNodeProperties testNode)
        {
            ITestNode aTestNode;

            if ((testNode as ITestCase) != null)
            {
                aTestNode = testNode as ITestCase;
            }
            else if ((testNode as ISuite) != null)
            {
                aTestNode = testNode as ISuite;
            }
            else
            {
                return;
            }


            var           utilSvc             = Services.Get <IUtilService>();
            var           sb                  = new StringBuilder();
            int           tableCnt            = 1;
            IFixtureTable fixtureTable        = null;
            bool          loadingFixtureTable = false;

            foreach (string line in testNode.ContentList)
            {
                if (line.StartsWith("#"))
                {
                    continue;
                }
                if (utilSvc.IsScenarioStart(line))
                {
                    loadingFixtureTable = true;
                    if (sb.Length != 0)
                    {
                        CreateTextTable(tableCnt, aTestNode, ref sb);
                        tableCnt++;
                    }
                    fixtureTable = Services.Get <IFixtureTable>(tableCnt + "");
                    tableCnt++;
                    aTestNode.AddChildNode(fixtureTable);
                }

                if (!line.Contains("|"))
                {
                    if (loadingFixtureTable)
                    {
                        NotifyOnAfterCreateNode(fixtureTable);
                    }
                    loadingFixtureTable = false;
                    if (line.ToLower().StartsWith("!include"))
                    {
                        var linkItem = Services.Get <ITestLink>(tableCnt + "");
                        tableCnt++;
                        linkItem.ContentText = line;
                        aTestNode.AddChildNode(linkItem);
                        continue;
                    }

                    sb.AppendLine(line);
                    continue;
                }

                if (fixtureTable != null)
                {
                    if (line.Contains("!") && (!line.Contains("!|")))
                    {
                        continue;
                    }
                    fixtureTable.FixtureData.Add(utilSvc.GetColumns(line));
                }
            }
            if (sb.Length != 0)
            {
                CreateTextTable(tableCnt, aTestNode, ref sb);
            }
        }