コード例 #1
0
        public void UpdateCoverageDataForResourceWithNewDateDataTest()
        {
            var newResource = new Resource {
                Date = DateTime.Now, Key = "resource"
            };
            var source1 = new SourceCoverage();

            source1.SetLineCoverageData("1=0;2=3;3=3");
            source1.SetBranchCoverageData("1=0;2=3;3=3", "1=0;2=3;3=3");

            this.service.Expect(
                mp => mp.GetResourcesData(Arg <ISonarConfiguration> .Is.Anything, Arg <string> .Is.Anything))
            .Return(new List <Resource> {
                newResource
            });

            this.service.Expect(
                mp => mp.GetSourceForFileResource(Arg <ISonarConfiguration> .Is.Anything, Arg <string> .Is.Anything))
            .Return(new Source {
                Lines = new[] { "line1", "line2", "line3", "line4" }
            })
            .Repeat.Once();

            this.service.Expect(
                mp => mp.GetIssuesInResource(Arg <ISonarConfiguration> .Is.Anything, Arg <string> .Is.Anything))
            .Return(new List <Issue>())
            .Repeat.Once();

            this.service.Expect(
                mp => mp.GetCoverageInResource(Arg <ISonarConfiguration> .Is.Anything, Arg <string> .Is.Anything))
            .Return(source1)
            .Repeat.Once();

            this.analysisPlugin.Expect(
                mp => mp.GetResourceKey(Arg <VsProjectItem> .Is.Anything, Arg <string> .Is.Anything, Arg <bool> .Is.Anything))
            .Return("resource");

            var data = new ExtensionDataModel(this.service, this.vshelper, null, null);

            data.AssociatedProject = new Resource {
                Key = "sonar.com:common"
            };
            data.CoverageInEditorEnabled = true;

            var localAnalyser = this.mocks.Stub <ISonarLocalAnalyser>();

            data.LocalAnalyserModule = localAnalyser;

            using (this.mocks.Record())
            {
                SetupResult.For(localAnalyser.GetResourceKey(Arg <VsProjectItem> .Is.Anything, Arg <Resource> .Is.Anything, Arg <ISonarConfiguration> .Is.Anything, Arg <bool> .Is.Equal(true))).Return("Key1");
                SetupResult.For(localAnalyser.GetResourceKey(Arg <VsProjectItem> .Is.Anything, Arg <Resource> .Is.Anything, Arg <ISonarConfiguration> .Is.Anything, Arg <bool> .Is.Equal(false))).Return("Key2");
            }

            data.RefreshDataForResource("resource");
            var data1 = data.GetCoverageInEditor("ghfggfgf\r\nghfggfgf\r\nghfggfgf\r\nghfggfgf\r\n");

            Assert.IsNotNull(data1);
        }
コード例 #2
0
            public void DisableCoverageInEditor()
            {
                var data           = new ExtensionDataModel(this.service, this.vshelper, null, null);
                var sourceCoverage = new SourceCoverage();

                data.CoverageInEditorEnabled = false;
                Assert.IsFalse(data.CoverageInEditorEnabled);
                Assert.AreNotEqual(sourceCoverage, data.GetCoverageInEditor(string.Empty));
            }
コード例 #3
0
        /// <summary>
        /// The update coverage DataCache.
        /// </summary>
        /// <param name="elem">
        /// The elem.
        /// </param>
        /// <param name="coverageData">
        /// The coverage DataCache.
        /// </param>
        private void UpdateCoverageData(EditorData elem, SourceCoverage coverageData)
        {
            if (coverageData == null)
            {
                return;
            }

            var tempCoverageLine = new Dictionary <int, CoverageElement>();

            foreach (LineCoverage linemeasure in coverageData.LinesHits)
            {
                int line = linemeasure.Id - 1;

                tempCoverageLine.Add(line, linemeasure.Hits > 0 ? CoverageElement.LineCovered : CoverageElement.LineNotCovered);
            }

            foreach (BranchCoverage branchmeasure in coverageData.BranchHits)
            {
                int line = branchmeasure.Id - 1;

                if (tempCoverageLine.ContainsKey(line))
                {
                    if (branchmeasure.CoveredConditions == branchmeasure.TotalConditions)
                    {
                        tempCoverageLine[line] = CoverageElement.LineCovered;
                    }
                    else if (branchmeasure.CoveredConditions == 0)
                    {
                        tempCoverageLine[line] = CoverageElement.LineNotCovered;
                    }
                    else
                    {
                        tempCoverageLine[line] = CoverageElement.LinePartialCovered;
                    }
                }
                else
                {
                    if (branchmeasure.CoveredConditions == branchmeasure.TotalConditions)
                    {
                        tempCoverageLine.Add(line, CoverageElement.LineCovered);
                    }
                    else if (branchmeasure.CoveredConditions == 0)
                    {
                        tempCoverageLine.Add(line, CoverageElement.LineNotCovered);
                    }
                    else
                    {
                        tempCoverageLine.Add(line, CoverageElement.LinePartialCovered);
                    }
                }
            }

            elem.CoverageData = tempCoverageLine;
        }
コード例 #4
0
        /// <summary>
        /// The update coverage DataCache.
        /// </summary>
        /// <param name="resource">
        /// The resource.
        /// </param>
        /// <param name="coverageData">
        /// The coverage DataCache.
        /// </param>
        /// <param name="issues">
        /// The issues.
        /// </param>
        /// <param name="serverSource">
        /// The server source.
        /// </param>
        public void UpdateResourceData(Resource resource, SourceCoverage coverageData, List <Issue> issues, string serverSource)
        {
            if (!DataCache.ContainsKey(resource.Key))
            {
                DataCache.Add(resource.Key, new EditorData(resource));
            }

            EditorData elem = DataCache[resource.Key];

            elem.ServerSource = serverSource;
            this.UpdateCoverageData(elem, coverageData);
            this.UpdateIssuesData(elem, issues);
        }
コード例 #5
0
        public void UpdateCoverageDataForResourceWithNewDateDataTest()
        {
            var newResource = new Resource { Date = DateTime.Now, Key = "resource" };
            var source1 = new SourceCoverage();
            source1.SetLineCoverageData("1=0;2=3;3=3");
            source1.SetBranchCoverageData("1=0;2=3;3=3", "1=0;2=3;3=3");

            this.service.Expect(
                mp => mp.GetResourcesData(Arg<ISonarConfiguration>.Is.Anything, Arg<string>.Is.Anything))
                .Return(new List<Resource> { newResource });

            this.service.Expect(
                mp => mp.GetSourceForFileResource(Arg<ISonarConfiguration>.Is.Anything, Arg<string>.Is.Anything))
                .Return(new Source { Lines = new[] { "line1", "line2", "line3", "line4" } })
                .Repeat.Once();

            this.service.Expect(
                mp => mp.GetIssuesInResource(Arg<ISonarConfiguration>.Is.Anything, Arg<string>.Is.Anything))
                .Return(new List<Issue>())
                .Repeat.Once();

            this.service.Expect(
                mp => mp.GetCoverageInResource(Arg<ISonarConfiguration>.Is.Anything, Arg<string>.Is.Anything))
                .Return(source1)
                .Repeat.Once();

            this.analysisPlugin.Expect(
                mp => mp.GetResourceKey(Arg<VsProjectItem>.Is.Anything, Arg<string>.Is.Anything, Arg<bool>.Is.Anything))
                .Return("resource");

            var data = new ExtensionDataModel(this.service, this.vshelper, null, null);
            data.AssociatedProject = new Resource { Key = "sonar.com:common" };
            data.CoverageInEditorEnabled = true;

            var localAnalyser = this.mocks.Stub<ISonarLocalAnalyser>();
            data.LocalAnalyserModule = localAnalyser;

            using (this.mocks.Record())
            {
                SetupResult.For(localAnalyser.GetResourceKey(Arg<VsProjectItem>.Is.Anything, Arg<Resource>.Is.Anything, Arg<ISonarConfiguration>.Is.Anything, Arg<bool>.Is.Equal(true))).Return("Key1");
                SetupResult.For(localAnalyser.GetResourceKey(Arg<VsProjectItem>.Is.Anything, Arg<Resource>.Is.Anything, Arg<ISonarConfiguration>.Is.Anything, Arg<bool>.Is.Equal(false))).Return("Key2");
            }

            data.RefreshDataForResource("resource");
            var data1 = data.GetCoverageInEditor("ghfggfgf\r\nghfggfgf\r\nghfggfgf\r\nghfggfgf\r\n");
            Assert.IsNotNull(data1);
        }