public void DoServerAnalysisUpdateBufferFileNotFound() { var source = new Source { Lines = new[] { "line1", "line2", "line3", "line4" } }; this.vshelper.Expect( mp => mp.CurrentSelectedDocumentLanguage()) .Return("c++"); this.vshelper.Expect( mp => mp.ActiveFileFullPath()) .Return("c:\\src\\file.cpp"); this.vshelper.Expect( mp => mp.ActiveSolutionPath()) .Return("c:\\src"); this.service.Expect( mp => mp.GetSourceForFileResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything)) .Return(source); var element = new Resource { Date = new DateTime(2000, 1, 1), Key = "resourceKey"}; this.service.Expect( mp => mp.GetResourcesData(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything)) .Return(new List<Resource> { element }) .Repeat.Twice(); this.plugin.Expect(mp => mp.IsSupported(Arg<ConnectionConfiguration>.Is.Anything, Arg<Resource>.Is.Anything)).Return(true).Repeat.Once(); this.plugin.Expect( mp => mp.GetResourceKey( Arg<VsProjectItem>.Is.Anything, Arg<string>.Is.Anything)).Return("key").Repeat.Once(); var data = new ExtensionDataModel(this.service, this.vshelper, null); data.AssociatedProject = new Resource { Key = "KEY"}; data.RefreshDataForResource("c:\\src\\file.cpp"); Assert.AreEqual("Extension Not Ready", data.ErrorMessage); Assert.AreEqual(0, data.GetIssuesInEditor("file").Count); }
/// <summary> /// The get lines from source. /// </summary> /// <param name="sourceSource"> /// The source source. /// </param> /// <param name="sep"> /// The sep. /// </param> /// <returns> /// The System.String. /// </returns> public static string GetLinesFromSource(Source sourceSource, string sep) { return sourceSource.Lines.Aggregate(string.Empty, (current, line) => current + (line.Val + sep)); }
/// <summary> /// The get lines from source. /// </summary> /// <param name="sourceSource"> /// The source source. /// </param> /// <returns> /// The System.Collections.Generic.List`1[T -> System.String]. /// </returns> public static List<string> GetLinesFromSource(Source sourceSource) { return sourceSource.Lines.Select(line => line.Val).ToList(); }
public void UpdateSourceDataForResourceWithNewDateDataTest() { var element = new Resource(); var newResource = new Resource { Date = DateTime.Now }; var source1 = new Source(); var source2 = new Source(); this.service.Expect( mp => mp.GetResourcesData(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Equal("resource"))) .Return(new List<Resource> { element }) .Repeat.Once(); this.service.Expect( mp => mp.GetResourcesData(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Equal("resource"))) .Return(new List<Resource> { newResource }); this.service.Expect( mp => mp.GetSourceForFileResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Equal("resource"))) .Return(source1) .Repeat.Once(); this.service.Expect( mp => mp.GetSourceForFileResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Equal("resource"))) .Return(source2); var data = new ExtensionDataModel(this.service, this.vshelper, null); Assert.AreEqual(source1, data.UpdateSourceDataForResource("resource", false)); Assert.AreEqual(source2, data.UpdateSourceDataForResource("resource", false)); }
public void EnableCoverageInEditor() { var data = new ExtensionDataModel(this.service, this.vshelper, null); var sourceCoverage = new SourceCoverage(); var source = new Source { Lines = new List<Line> { new Line { Id = 1, Val = "#include bal" }, new Line { Id = 2, Val = "#include bals" } } }; var element = new Resource { Date = new DateTime(2000, 1, 1) }; this.service.Expect( mp => mp.GetResourcesData(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Equal("resource"))) .Return(new List<Resource> { element }) .Repeat.Twice(); this.service.Expect( mp => mp.GetSourceForFileResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Equal("resource"))) .Return(source); this.service.Expect( mp => mp.GetCoverageInResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Equal("resource"))) .Return(sourceCoverage); element.Key = "resource"; data.ResourceInEditor = element; data.EnableCoverageInEditor = true; Assert.IsTrue(data.EnableCoverageInEditor); Assert.AreEqual(sourceCoverage, data.CoverageInEditor); Assert.AreEqual(element, data.ResourceInEditor); Assert.AreEqual(0, data.CoverageInEditor.BranchHits.Count); Assert.AreEqual(0, data.CoverageInEditor.LinesHits.Count); }
public void UpdateIssueDataForResourceWithNewDateDataTestWithCache() { var fileSource = new Source { Lines = new[] { "line1", "line2", "line3", "line4" } }; 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<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything)) .Return(new List<Resource> { newResource }); this.service.Expect( mp => mp.GetSourceForFileResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything)) .Return(fileSource) .Repeat.Once(); this.service.Expect( mp => mp.GetIssuesInResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything)) .Return(new List<Issue> { new Issue { Severity = "CRITICAL", Line = 1 } }) .Repeat.Once(); this.service.Expect( mp => mp.GetCoverageInResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything)) .Return(source1) .Repeat.Once(); this.plugin.Expect( mp => mp.GetResourceKey(Arg<VsProjectItem>.Is.Anything, Arg<string>.Is.Anything)) .Return("resource"); var data = new ExtensionDataModel(this.service, this.vshelper, null); data.AssociatedProject = new Resource { Key = "sonar.com:common" }; data.RefreshDataForResource("resource"); Assert.AreEqual(1, data.GetIssuesInEditor("ghfggfgf\r\nghfggfgf\r\nghfggfgf\r\nghfggfgf\r\n").Count); }
/// <summary> /// The get lines from source. /// </summary> /// <param name="sourceSource"> /// The source source. /// </param> /// <param name="lineSep"> /// The line sep. /// </param> /// <param name="startLine"> /// The start line. /// </param> /// <param name="lenght"> /// The lenght. /// </param> /// <returns> /// The <see cref="string"/>. /// </returns> public static string GetLinesFromSource(Source sourceSource, string lineSep, int startLine, int lenght) { var data = string.Empty; for (var i = startLine; i < startLine + lenght; i++) { data += sourceSource.Lines[i] + lineSep; } return data; }
/// <summary> /// The get difference report. /// </summary> /// <param name="filePath"> /// The file Path. /// </param> /// <param name="sourceInServer"> /// The in server source. /// </param> /// <param name="displayWindow"> /// The display Window. /// </param> /// <returns> /// The <see cref="ArrayList"/>. /// </returns> public static ArrayList GetDifferenceReport(string filePath, Source sourceInServer, bool displayWindow) { string lines = GetLinesFromSource(sourceInServer, "\r\n"); var sLf = new DiffListTextFile(filePath); var dLf = new DiffListTextFile(lines, "\r\n"); var de = new DiffEngine(); de.ProcessDiff(dLf, sLf, DiffEngineLevel.SlowPerfect); if (!displayWindow) { return de.DiffReport(); } using (var win = new Results(sLf, dLf, de.DiffReport(), 0)) { win.ShowDialog(); } return de.DiffReport(); }
public void DoServerAnalysisUpdateBufferFileFound() { var source = new Source { Lines = new List<Line> { new Line { Id = 1, Val = "#include xpto;" }, new Line { Id = 2, Val = "#include ypto;" } } }; this.vshelper.Expect( mp => mp.CurrentSelectedDocumentLanguage()) .Return("c++"); this.vshelper.Expect( mp => mp.ActiveFileFullPath()) .Return("c:\\src\\file.cpp"); this.vshelper.Expect( mp => mp.ActiveSolutionPath()) .Return("c:\\src"); this.service.Expect( mp => mp.GetSourceForFileResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything)) .Return(source); var element = new Resource { Date = new DateTime(2000, 1, 1), Key = "resourceKey", Lname = "file.cpp" }; this.service.Expect( mp => mp.GetResourcesData(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything)) .Return(new List<Resource> { element }) .Repeat.Times(3); this.service.Expect( mp => mp.GetIssuesInResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything, Arg<bool>.Is.Anything)) .Return(new List<Issue> { new Issue { Component = "file.cpp", Line = 1, Status = "OPEN" }, new Issue { Component = "file.cpp", Line = 1, Status = "OPEN" } }) .Repeat.Once(); this.pluginController.Expect( mp => mp.GetPluginToRunResource(Arg<string>.Is.Anything)) .Return(this.plugin) .Repeat.Once(); this.plugin.Expect(mp => mp.IsSupported(Arg<string>.Is.Anything)).Return(true).Repeat.Once(); this.plugin.Expect(mp => mp.GetServerAnalyserExtension()).Return(this.extension).Repeat.Once(); this.extension.Expect( mp => mp.GetResourceKey( Arg<string>.Is.Anything, Arg<VsProjectItem>.Is.Anything, Arg<string>.Is.Anything, Arg<string>.Is.Anything)).Return("key").Repeat.Once(); var data = new ExtensionDataModel(this.service, this.vshelper, null); data.PluginController = this.pluginController; data.PluginRunningAnalysis = this.plugin; data.ServerAnalysis = ExtensionDataModel.AnalysesType.Server; data.AssociatedProject = new Resource { Key = "KEY", Lname = "file.cpp"}; data.UpdateDataInEditor("c:\\src\\file.cpp", "#include xpto;\r\n#include ypto;"); Assert.AreEqual(string.Empty, data.ErrorMessage); Assert.AreEqual(2, data.IssuesInEditor.Count); data.UpdateIssuesLocationWithModifiedBuffer("#include xpto;\r\n#include ypto;"); Assert.AreEqual(string.Empty, data.ErrorMessage); Assert.AreEqual(2, data.IssuesInEditor.Count); }
public void DoServerAnalysisUpdateBufferFileNotFound() { var source = new Source { Lines = new List<Line> { new Line { Id = 1, Val = "#include bal" }, new Line { Id = 2, Val = "#include bals" } } }; this.vshelper.Expect( mp => mp.CurrentSelectedDocumentLanguage()) .Return("c++"); this.vshelper.Expect( mp => mp.ActiveFileFullPath()) .Return("c:\\src\\file.cpp"); this.vshelper.Expect( mp => mp.ActiveSolutionPath()) .Return("c:\\src"); this.service.Expect( mp => mp.GetSourceForFileResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything)) .Return(source); var element = new Resource { Date = new DateTime(2000, 1, 1), Key = "resourceKey"}; this.service.Expect( mp => mp.GetResourcesData(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything)) .Return(new List<Resource> { element }) .Repeat.Twice(); this.plugin.Expect(mp => mp.IsSupported(Arg<string>.Is.Anything)).Return(true).Repeat.Once(); this.plugin.Expect(mp => mp.GetServerAnalyserExtension()).Return(this.extension).Repeat.Once(); this.extension.Expect( mp => mp.GetResourceKey( Arg<string>.Is.Anything, Arg<VsProjectItem>.Is.Anything, Arg<string>.Is.Anything, Arg<string>.Is.Anything)).Return("key").Repeat.Once(); var data = new ExtensionDataModel(this.service, this.vshelper, null); data.ServerAnalysis = ExtensionDataModel.AnalysesType.Server; data.AssociatedProject = new Resource { Key = "KEY"}; data.UpdateDataInEditor("c:\\src\\file.cpp", "#include xpto;\r\n#include ypto;"); Assert.AreEqual("No plugin installed that supports this file", data.ErrorMessage); Assert.AreEqual(0, data.IssuesInEditor.Count); }