public void TestCoverage_Insert_Test()
        {
            var writer = new TestCoverageDBMetricStorageWriter(this.config[SolutionConfigName.BIZ_DASHBOARD_DB_CONNECTION_STR].ToString());
            var detail = new Dictionary <string, object>();

            var buildId = 10000000;

            detail["VSO"]             = "dltc";
            detail["Project"]         = "myProj";
            detail["BuildId"]         = buildId;
            detail["ModuleName"]      = "abc";
            detail["LinesCovered"]    = 100;
            detail["LinesNotCovered"] = 50;

            var m1 = new Metric("TestCoverage", MetricType.TestCoverage, detail);

            writer.Write(m1);
            var tc = DBUtil.GetTestCoverage(this.config[SolutionConfigName.BIZ_DASHBOARD_DB_CONNECTION_STR].ToString(), "dltc", "myProj", buildId);

            Assert.AreEqual(tc.VSO, "dltc");
            Assert.AreEqual(tc.Project, "myProj");
            Assert.AreEqual(tc.BuildId, buildId);
            Assert.AreEqual(tc.ModuleName, "abc");
            Assert.AreEqual(tc.LinesCovered, 100);
            Assert.AreEqual(tc.LinesNotCovered, 50);
        }
        public void TestCoverage_MetricCollector_Test()
        {
            var writer    = new TestCoverageDBMetricStorageWriter(this.config[SolutionConfigName.BIZ_DASHBOARD_DB_CONNECTION_STR].ToString());
            var collector = new TestCoverageDBMetricCollector(writer, this.config);

            collector.CollectMetric();
        }
        public SalesIntelligenceMetricCollectorWorker(SolutionConfig config)
        {
            APIPingUtil.LanuchPingThread(config[SolutionConfigName.DASHBOARD_APP_INSIGHT_KEY].ToString());

            var dbConnString = config[SolutionConfigName.BIZ_DASHBOARD_DB_CONNECTION_STR].ToString();

            //Create build info collector
            var buildWriter = new OffcialBuildDBMetricStorageWriter(dbConnString);

            this.buildCollector = new OfficialBuildDBMetricCollector(buildWriter, config);

            //Create PR info collector
            var prWriter = new PullRequestDBMetricStorageWriter(dbConnString);

            this.prCollector = new PullRequestDBMetricCollector(prWriter, config);

            //Create TestCoverage info collector
            var testCoverageWriter = new TestCoverageDBMetricStorageWriter(dbConnString);

            this.testCoverageCollector = new TestCoverageDBMetricCollector(testCoverageWriter, config);

            //Create TestRun collector, it collect result of test run triggered by build
            var buildTestrunWriter = new BuildTestRunDBMetricStorageWriter(dbConnString);

            this.buildTestRunCollector = new BuildTestRunDBMetricCollector(buildTestrunWriter, config);

            //Create TestRun collector, it collect result of test run triggered by build
            var releaseTestRunWriter = new ReleaseTestRunDBMetricStorageWriter(dbConnString);

            this.releaseTestRunCollector = new ReleaseTestRunDBMetricCollector(releaseTestRunWriter, config);

            //Create vso work item collector, it collects CriticalError and Customer Incident manaully tracked in VSO
            var vsoWorkItemWriter = new VSOWorkItemDBMetricStorageWriter(dbConnString);

            this.vsoWorkItemCollector = new VSOWorkItemCollector(vsoWorkItemWriter, config);
        }