public override bool Equals(object obj) { LineMapping other = obj as LineMapping; return(DocumentLocation.Equals(other.DocumentLocation) && GeneratedLocation.Equals(other.GeneratedLocation)); }
private void AssertNotEqual(LineMapping left, LineMapping right) { Assert.False(left == right); Assert.False(left.Equals(right)); Assert.False(right.Equals(left)); Assert.False(Equals(left, right)); }
public void WriterConstructedWithoutContentLengthAndSourceFile_AddsLinePragmas_OnDispose() { // Arrange var location = new SourceLocation(10, 1, 20); var expected = string.Join(Environment.NewLine, @"#line 2 ""myfile""", "Hello world", "", "#line default", "#line hidden", ""); var expectedMappings = new LineMapping( new MappingLocation(location, 30), new MappingLocation(new SourceLocation(18, 1, 0), 11)); var writer = new CSharpCodeWriter(); // Act using (var mappingWriter = new CSharpLineMappingWriter(writer, location, "myfile")) { writer.Write("Hello world"); } // Assert Assert.Equal(expected, writer.GenerateCode()); Assert.Empty(writer.LineMappingManager.Mappings); }
public void WriterConstructedWithoutContentLengthAndSourceFile_AddsLinePragmas_OnDispose() { // Arrange var location = new SourceLocation(10, 1, 20); var expected = string.Join(Environment.NewLine, @"#line 2 ""myfile""", "Hello world", "", "#line default", "#line hidden", ""); var expectedMappings = new LineMapping( new MappingLocation(location, 30), new MappingLocation(new SourceLocation(18, 1, 0), 11)); var writer = new CSharpCodeWriter(); // Act using (var mappingWriter = new CSharpLineMappingWriter(writer, location, "myfile")) { writer.Write("Hello world"); } // Assert Assert.Equal(expected, writer.GenerateCode()); Assert.Empty(writer.LineMappingManager.Mappings); }
private async void UpdateResults() { if (TryInitilaizeDocument()) { var isModified = _textDocument.LastContentModifiedTime > _editorContext.LastBuildTime.ToUniversalTime(); _resultMapping = new LineMapping(_textView.TextSnapshot.LineCount, isModified); _fileResults = await _resultProvider.GetFileResultsAsync(_textDocument.FilePath); UpdateAllLines(); } }
public void GeneratedCodeMappingsAreNotEqualIfStartLineIsNotEqual() { // Arrange var left = new LineMapping( new MappingLocation(new SourceLocation(1, 2, 3), 4), new MappingLocation(new SourceLocation(5, 5, 7), 8) ); var right = new LineMapping( new MappingLocation(new SourceLocation(1, 1, 3), 4), new MappingLocation(new SourceLocation(5, 6, 7), 8) ); // Assert AssertNotEqual(left, right); }
public void GeneratedCodeMappingsAreEqualIfDataIsEqual() { // Arrange var left = new LineMapping( new MappingLocation(new SourceLocation(1, 2, 3), 4), new MappingLocation(new SourceLocation(5, 6, 7), 8) ); var right = new LineMapping( new MappingLocation(new SourceLocation(1, 2, 3), 4), new MappingLocation(new SourceLocation(5, 6, 7), 8) ); // Assert Assert.True(left == right); Assert.True(left.Equals(right)); Assert.True(right.Equals(left)); Assert.True(Equals(left, right)); }
private async void UpdateCoverage() { try { if (TryInitilaizeDocument()) { var isModified = _textDocument.LastContentModifiedTime > _editorContext.LastBuildTime.ToUniversalTime(); _coverageMapping = new LineMapping(_textView.TextSnapshot.LineCount, isModified); _fileCoverage = await _coverageProvider.GetFileCoverageAsync(_textDocument.FilePath); UpdateAllLines(); } } catch (Exception e) { await _telemetryManager.UploadExceptionAsync(e); } }
public void WriterConstructedWithContentLength_AddsLineMappings_OnDispose() { // Arrange var location = new SourceLocation(10, 15, 20); var expected = new LineMapping( new MappingLocation(location, 30), new MappingLocation(new SourceLocation(0, 0, 0), 11)); var writer = new CSharpCodeWriter(); // Act using (var mappingWriter = new CSharpLineMappingWriter(writer, location, 30)) { writer.Write("Hello world"); } // Assert Assert.Equal("Hello world", writer.GenerateCode()); var mapping = Assert.Single(writer.LineMappingManager.Mappings); Assert.Equal(expected, mapping); }
public void WriterConstructedWithContentLength_AddsLineMappings_OnDispose() { // Arrange var location = new SourceLocation(10, 15, 20); var expected = new LineMapping( new MappingLocation(location, 30), new MappingLocation(new SourceLocation(0, 0, 0), 11)); var writer = new CSharpCodeWriter(); // Act using (var mappingWriter = new CSharpLineMappingWriter(writer, location, 30)) { writer.Write("Hello world"); } // Assert Assert.Equal("Hello world", writer.GenerateCode()); var mapping = Assert.Single(writer.LineMappingManager.Mappings); Assert.Equal(expected, mapping); }
public void Equality() { var lineMappings = new LineMapping[] { new LineMapping(new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), null, new FileLinePositionSpan("", new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), hasMappedPath: false)), new LineMapping(new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), null, new FileLinePositionSpan("", new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), hasMappedPath: true)), new LineMapping(new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), null, new FileLinePositionSpan("", new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 2)), hasMappedPath: false)), new LineMapping(new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), null, new FileLinePositionSpan("", new LinePositionSpan(new LinePosition(0, 0), new LinePosition(2, 2)), hasMappedPath: false)), new LineMapping(new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), null, new FileLinePositionSpan("", new LinePositionSpan(new LinePosition(0, 1), new LinePosition(1, 1)), hasMappedPath: false)), new LineMapping(new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), null, new FileLinePositionSpan("", new LinePositionSpan(new LinePosition(1, 0), new LinePosition(1, 1)), hasMappedPath: false)), new LineMapping(new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), null, new FileLinePositionSpan("file.cs", new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), hasMappedPath: false)), new LineMapping(new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), 0, new FileLinePositionSpan("", new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), hasMappedPath: false)), new LineMapping(new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 2)), null, new FileLinePositionSpan("", new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), hasMappedPath: false)), new LineMapping(new LinePositionSpan(new LinePosition(0, 0), new LinePosition(2, 2)), null, new FileLinePositionSpan("", new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), hasMappedPath: false)), new LineMapping(new LinePositionSpan(new LinePosition(0, 1), new LinePosition(1, 1)), null, new FileLinePositionSpan("", new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), hasMappedPath: false)), new LineMapping(new LinePositionSpan(new LinePosition(1, 0), new LinePosition(1, 1)), null, new FileLinePositionSpan("", new LinePositionSpan(new LinePosition(0, 0), new LinePosition(1, 1)), hasMappedPath: false)), }; var equalityUnits = lineMappings.SelectMany((left, leftIndex) => lineMappings.Select((right, rightIndex) => CreateEqualityUnit(left, leftIndex, right, rightIndex))).ToArray(); EqualityUtil.RunAll( (left, right) => left == right, (left, right) => left != right, equalityUnits);
static EqualityUnit <LineMapping> CreateEqualityUnit(LineMapping left, int leftIndex, LineMapping right, int rightIndex) { var leftUnit = EqualityUnit.Create(left); return((leftIndex == rightIndex) ? leftUnit.WithEqualValues(right) : leftUnit.WithNotEqualValues(right)); }
private void UpdateAnchors() { if (!TryInitilaizeDocument() || _testSolution == null) { return; } var projectItem = _editorContext .Solution .FindProjectItem(_textDocument.FilePath); if (projectItem == null || projectItem.ContainingProject == null || projectItem.FileCodeModel == null) { return; } var projectModel = projectItem.ContainingProject; var testProject = _testSolution.Children.FirstOrDefault(p => p.CodeItem.Name == projectModel.Name); if (testProject == null) { return; } var testAnchors = new Dictionary <int, TestItemViewModel>(); var classModels = projectItem.FileCodeModel.CodeElements.GetClasses(); foreach (var classModel in classModels) { var path = classModel.FullName.Split('.'); var target = testProject; foreach (var segment in path) { target = target.Children.FirstOrDefault(p => p.CodeItem.Name == segment); if (target == null) { break; } } if (target == null || target.CodeItem.Kind != CodeItemKind.Class) { continue; } var methodModels = classModel.GetMethods(); var testMethods = target.Children; foreach (var testMehod in testMethods) { var methodModel = methodModels.FirstOrDefault(p => p.Name == testMehod.CodeItem.Name); if (methodModel == null) { continue; } testAnchors[methodModel.StartPoint.Line - 1] = testMehod; } } _testAnchors = testAnchors; _testAnchorMapping = new LineMapping(_textView.TextSnapshot.LineCount); UpdateAllLines(); }