/// <summary>
        /// Publish the statistics for this build.
        /// </summary>
        /// <param name="integrationResult">The results of the build.</param>
        protected override bool Execute(IIntegrationResult integrationResult)
        {
            StatisticsBuilder builder = new StatisticsBuilder();

            for (int i = 0; i < ConfiguredStatistics.Length; i++)
            {
                StatisticBase statistic = ConfiguredStatistics[i];
                builder.Add(statistic);     // Note: This may actually remove the statistic if include=false.
            }
            StatisticsResults stats = builder.ProcessBuildResults(integrationResult);

            UpdateXmlFile(stats, integrationResult);

            //commented out because this does not work
            //ChartGenerator(builder.Statistics).Process(xmlDocument, integrationResult.ArtifactDirectory);

            UpdateCsvFile(stats, builder.Statistics, integrationResult);

            return(true);
        }
        /// <summary>
        /// Publish the statistics for this build.
        /// </summary>
        /// <param name="integrationResult">The results of the build.</param>
        protected override bool Execute(IIntegrationResult integrationResult)
        {
            StatisticsBuilder builder = new StatisticsBuilder();
            for (int i = 0; i < ConfiguredStatistics.Length; i++)
            {
                StatisticBase statistic = ConfiguredStatistics[i];
                builder.Add(statistic);     // Note: This may actually remove the statistic if include=false.
            }
            StatisticsResults stats = builder.ProcessBuildResults(integrationResult);

            UpdateXmlFile(stats, integrationResult);

            //commented out because this does not work
            //ChartGenerator(builder.Statistics).Process(xmlDocument, integrationResult.ArtifactDirectory);

            UpdateCsvFile(stats, builder.Statistics, integrationResult);

            return true;
        }
 public void SetUp()
 {
     builder = new StatisticsBuilder();
     successful = IntegrationResultMother.CreateSuccessful();
 }
        public void ShowOutputOfStatisticsInConsole()
        {
            StringBuilder buffer = new StringBuilder();
            System.IO.StreamReader reader = System.IO.File.OpenText(@"resources\UnitTestResults2.xml");
            var buildlog= reader.ReadToEnd();
            reader.Close();

            StatisticsBuilder builder = new StatisticsBuilder();

  
            Statistic info = new Statistic();
            info.Name = "Statistic TestsTotalCount no ns";
            info.Xpath = @"//TestRun/ResultSummary/Counters/@total";
            builder.Add(info);


            FirstMatch info2 = new FirstMatch();
            info2.Name = "FirstMatch TestsTotalCount no ns";
            info2.Xpath = @"//TestRun/ResultSummary/Counters/@total";
            builder.Add(info2);

            
            FirstMatch info1 = new FirstMatch();
            info1.Name = "FirstMatch TestsTotalCount with ns";
            info1.Xpath = @"//mstest:TestRun/mstest:ResultSummary/mstest:Counters/@total";
            info1.NameSpaces = new StatisticsNamespaceMapping[1];           
            info1.NameSpaces[0] = new StatisticsNamespaceMapping("mstest", @"http://microsoft.com/schemas/VisualStudio/TeamTest/2010");
            builder.Add(info1);



            Statistic info3 = new Statistic();
            info3.Name = "Statistic sum(TestsTotalCount) no ns";
            info3.Xpath = @"sum(//TestRun/ResultSummary/Counters/@total)";
            builder.Add(info3);

            Statistic info4 = new Statistic();
            info4.Name = "Statistic sum(TestsTotalCount) with ns";
            info4.Xpath = @"sum(//mstest:TestRun/mstest:ResultSummary/mstest:Counters/@total)";
            info4.NameSpaces = new StatisticsNamespaceMapping[1];
            info4.NameSpaces[0] = new StatisticsNamespaceMapping("mstest", @"http://microsoft.com/schemas/VisualStudio/TeamTest/2010");
            builder.Add(info4);


            // seems impossible in xsl 1.0
            Statistic imp01 = new Statistic();
            imp01.Name = "impossible : Statistic TestsExecutedCount xmlns";
            imp01.Xpath = @"/xmlns:cruisecontrol/mstest:TestRun/mstest:ResultSummary/mstest:Counters/@executed";
            imp01.NameSpaces = new StatisticsNamespaceMapping[1];
            imp01.NameSpaces[0] = new StatisticsNamespaceMapping("mstest", @"http://microsoft.com/schemas/VisualStudio/TeamTest/2010");
            
            builder.Add(imp01);

            Statistic imp02 = new Statistic();
            imp02.Name = "impossible : Statistic TestsExecutedCount2 not namespace";
            imp02.Xpath = @"/cruisecontrol/mstest:TestRun/mstest:ResultSummary/mstest:Counters/@executed";
            imp02.NameSpaces = new StatisticsNamespaceMapping[1];
            imp02.NameSpaces[0] = new StatisticsNamespaceMapping("mstest", @"http://microsoft.com/schemas/VisualStudio/TeamTest/2010");

            builder.Add(imp02);

            


            StatisticsResults results = builder.ProcessBuildResults(buildlog);

            foreach (var x in results)
            {
                Console.WriteLine("Result {0} : {1}", x.StatName, x.Value);
            }
            
        
        }