/// <summary> /// The get coverage DataCache for resource. /// </summary> /// <param name="resource"> /// The resource. /// </param> /// <param name="currentSource"> /// The current source. /// </param> /// <returns> /// The <see> /// <cref>Dictionary</cref> /// </see> /// . /// </returns> public Dictionary <int, CoverageElement> GetCoverageDataForResource(Resource resource, string currentSource) { var coverageLine = new Dictionary <int, CoverageElement>(); if (!DataCache.ContainsKey(resource.Key)) { return(coverageLine); } EditorData element = DataCache[resource.Key]; ArrayList diffReport = VsSonarUtils.GetSourceDiffFromStrings(element.ServerSource, currentSource, DiffEngineLevel.FastImperfect); foreach (var linecov in element.CoverageData) { int line = VsSonarUtils.EstimateWhereSonarLineIsUsingSourceDifference(linecov.Key, diffReport); if (line > 0 && !coverageLine.ContainsKey(line)) { coverageLine.Add(line, linecov.Value); } } return(coverageLine); }
public void ShouldReportViolationInSameLine() { Assert.AreEqual(1, VsSonarUtils.EstimateWhereSonarLineIsUsingSourceDifference(1, this.rep)); Assert.AreEqual(2, VsSonarUtils.EstimateWhereSonarLineIsUsingSourceDifference(2, this.rep)); Assert.AreEqual(3, VsSonarUtils.EstimateWhereSonarLineIsUsingSourceDifference(3, this.rep)); Assert.AreEqual(7, VsSonarUtils.EstimateWhereSonarLineIsUsingSourceDifference(7, this.rep)); Assert.AreEqual(8, VsSonarUtils.EstimateWhereSonarLineIsUsingSourceDifference(8, this.rep)); }
/// <summary> /// The get issues for resource. /// </summary> /// <param name="resource"> /// The resource. /// </param> /// <param name="currentSource"> /// The current source. /// </param> /// <returns> /// The /// <see> /// <cref>List</cref> /// </see> /// . /// </returns> public List <Issue> GetIssuesForResource(Resource resource, string currentSource) { var issues = new List <Issue>(); if (!DataCache.ContainsKey(resource.Key)) { return(issues); } EditorData element = DataCache[resource.Key]; if (element.ServerSource == null) { return(element.Issues); } try { ArrayList diffReport = VsSonarUtils.GetSourceDiffFromStrings(element.ServerSource, currentSource, DiffEngineLevel.FastImperfect); foreach (Issue issue in element.Issues) { int line = VsSonarUtils.EstimateWhereSonarLineIsUsingSourceDifference(issue.Line, diffReport); if (line >= 0) { issues.Add(issue); } } return(issues); } catch (Exception) { return(element.Issues); } }
public void ShouldReportReturnInvalidIndex() { Assert.AreEqual(-1, VsSonarUtils.EstimateWhereSonarLineIsUsingSourceDifference(6, this.rep)); }
public void ShouldReportViolationInLineWithCorrectNumberOfAddedLines() { Assert.AreEqual(14, VsSonarUtils.EstimateWhereSonarLineIsUsingSourceDifference(11, this.rep)); Assert.AreEqual(15, VsSonarUtils.EstimateWhereSonarLineIsUsingSourceDifference(12, this.rep)); }
public void ShouldReportViolationInNextLine() { Assert.AreEqual(5, VsSonarUtils.EstimateWhereSonarLineIsUsingSourceDifference(4, this.rep)); }