public void Convert_IssueHasTwoFlows_IssueVisualizationWithTwoFlows() { var firstFlowFirstLocation = CreateLocation(Path.GetRandomFileName()); var firstFlowSecondLocation = CreateLocation(Path.GetRandomFileName()); var firstFlow = CreateFlow(firstFlowFirstLocation, firstFlowSecondLocation); var secondFlowFirstLocation = CreateLocation(Path.GetRandomFileName()); var secondFlowSecondLocation = CreateLocation(Path.GetRandomFileName()); var secondFlow = CreateFlow(secondFlowFirstLocation, secondFlowSecondLocation); var issueSpan = CreateNonEmptySpan(); var issue = CreateIssue(Path.GetRandomFileName(), firstFlow, secondFlow); SetupSpanCalculator(issue, issueSpan); var expectedFirstFlowFirstLocationVisualization = new AnalysisIssueLocationVisualization(1, firstFlowFirstLocation); var expectedFirstFlowSecondLocationVisualization = new AnalysisIssueLocationVisualization(2, firstFlowSecondLocation); var expectedFirstFlowVisualization = new AnalysisIssueFlowVisualization(1, new[] { expectedFirstFlowFirstLocationVisualization, expectedFirstFlowSecondLocationVisualization }, firstFlow); var expectedSecondFlowFirstLocationVisualization = new AnalysisIssueLocationVisualization(1, secondFlowFirstLocation); var expectedSecondFlowSecondLocationVisualization = new AnalysisIssueLocationVisualization(2, secondFlowSecondLocation); var expectedSecondFlowVisualization = new AnalysisIssueFlowVisualization(2, new[] { expectedSecondFlowFirstLocationVisualization, expectedSecondFlowSecondLocationVisualization }, secondFlow); var expectedIssueVisualization = new AnalysisIssueVisualization(new[] { expectedFirstFlowVisualization, expectedSecondFlowVisualization }, issue, issueSpan); var actualIssueVisualization = testSubject.Convert(issue, textSnapshotMock); AssertConversion(expectedIssueVisualization, actualIssueVisualization); }
public void Convert_IssueHasLocationsInDifferentFiles_CalculatesSpanForLocationsInSameFile() { var issueFilePath = Path.GetRandomFileName(); var locationInSameFile = CreateLocation(issueFilePath); var locationInAnotherFile = CreateLocation(Path.GetRandomFileName()); var flow = CreateFlow(locationInSameFile, locationInAnotherFile); var issueSpan = CreateNonEmptySpan(); var issue = CreateIssue(issueFilePath, flow); SetupSpanCalculator(issue, issueSpan); var locationSpan = CreateNonEmptySpan(); SetupSpanCalculator(locationInSameFile, locationSpan); var expectedLocation1 = new AnalysisIssueLocationVisualization(1, locationInSameFile) { Span = locationSpan }; var expectedLocation2 = new AnalysisIssueLocationVisualization(2, locationInAnotherFile) { Span = null }; var expectedFlow = new AnalysisIssueFlowVisualization(1, new[] { expectedLocation1, expectedLocation2 }, flow); var expectedIssueVisualization = new AnalysisIssueVisualization(new[] { expectedFlow }, issue, issueSpan); var actualIssueVisualization = testSubject.Convert(issue, textSnapshotMock); AssertConversion(expectedIssueVisualization, actualIssueVisualization); }
public void Convert_IssueHasOneFlow_IssueVisualizationWithFlow() { var location = CreateLocation(Path.GetRandomFileName()); var flow = CreateFlow(location); var issueSpan = CreateNonEmptySpan(); var issue = CreateIssue(Path.GetRandomFileName(), flow); SetupSpanCalculator(issue, issueSpan); var expectedLocationVisualization = new AnalysisIssueLocationVisualization(1, location); var expectedFlowVisualization = new AnalysisIssueFlowVisualization(1, new[] { expectedLocationVisualization }, flow); var expectedIssueVisualization = new AnalysisIssueVisualization(new[] { expectedFlowVisualization }, issue, issueSpan); var actualIssueVisualization = testSubject.Convert(issue, textSnapshotMock); AssertConversion(expectedIssueVisualization, actualIssueVisualization); }