public void Convert_UnknownVulnerabilityProbability_ArgumentOutOfRangeException() { var sonarQubeHotspot = CreateSonarQubeHotspot(probability: "some probability"); var issueVizConverter = SetupIssueVizConverter(Mock.Of <IAnalysisIssueVisualization>()); var testSubject = new HotspotToIssueVisualizationConverter(issueVizConverter.Object, Mock.Of <IAbsoluteFilePathLocator>()); Action act = () => testSubject.Convert(sonarQubeHotspot); act.Should().Throw <ArgumentOutOfRangeException>().And.ParamName.Should().Be("vulnerabilityProbability"); }
public void Convert_VulnerabilityProbability_ConvertedToHotspotPriority(string probability, HotspotPriority expectedPriority) { var sonarQubeHotspot = CreateSonarQubeHotspot(probability: probability); var issueVizConverter = SetupIssueVizConverter(Mock.Of <IAnalysisIssueVisualization>()); var testSubject = new HotspotToIssueVisualizationConverter(issueVizConverter.Object, Mock.Of <IAbsoluteFilePathLocator>()); testSubject.Convert(sonarQubeHotspot); issueVizConverter.Verify(x => x.Convert( It.Is((IHotspot hotspot) => hotspot.Rule.Priority == expectedPriority), It.IsAny <ITextSnapshot>()), Times.Once); }
public void Convert_CreatedIssueVisualization() { var creationDate = DateTimeOffset.UtcNow.Subtract(TimeSpan.FromMinutes(10342)); var lastUpdated = DateTimeOffset.Now; var sonarQubeHotspot = CreateSonarQubeHotspot( hotspotKey: "some key", filePath: "some path", probability: "high", textRange: new IssueTextRange(5, 10, 15, 20), message: "message", ruleKey: "rule key", lineHash: "hash-xxx"); var absoluteFilePathLocator = SetupAbsoluteFilePathLocator("some path", "some absolute path"); var expectedIssueViz = Mock.Of <IAnalysisIssueVisualization>(); var issueVizConverter = SetupIssueVizConverter(expectedIssueViz); var testSubject = new HotspotToIssueVisualizationConverter(issueVizConverter.Object, absoluteFilePathLocator.Object); var issueViz = testSubject.Convert(sonarQubeHotspot); issueViz.Should().Be(expectedIssueViz); issueVizConverter.Verify(x => x.Convert( It.Is((IHotspot hotspot) => hotspot.HotspotKey == "some key" && hotspot.Rule.Priority == HotspotPriority.High && hotspot.LineHash == "hash-xxx" && hotspot.Flows.IsEmpty() && hotspot.Message == "message" && hotspot.RuleKey == "rule key" && hotspot.Rule.RuleKey == "rule key" && hotspot.FilePath == "some absolute path" && hotspot.ServerFilePath == "some path" && hotspot.StartLine == 5 && hotspot.EndLine == 10 && hotspot.StartLineOffset == 15 && hotspot.EndLineOffset == 20), It.IsAny <ITextSnapshot>()), Times.Once); }
public void Convert_CannotGetAbsoluteFilePath_FilePathIsNull() { const string originalPath = "some path"; var sonarQubeHotspot = CreateSonarQubeHotspot(filePath: originalPath); var absoluteFilePathLocator = SetupAbsoluteFilePathLocator(originalPath, null); var expectedIssueViz = Mock.Of <IAnalysisIssueVisualization>(); var issueVizConverter = SetupIssueVizConverter(expectedIssueViz); var testSubject = new HotspotToIssueVisualizationConverter(issueVizConverter.Object, absoluteFilePathLocator.Object); var issueViz = testSubject.Convert(sonarQubeHotspot); issueViz.Should().Be(expectedIssueViz); issueVizConverter.Verify(x => x.Convert( It.Is((IHotspot hotspot) => hotspot.FilePath == null && hotspot.ServerFilePath == originalPath), It.IsAny <ITextSnapshot>()), Times.Once); }