Ejemplo n.º 1
0
        public async Task ReturnsEmptyResultWhenDefinitionIsNotFound()
        {
            var source1 = @"using System;

class Foo {
}";
            var source2 = @"class Bar {
    private Baz foo;
}";

            var workspace = await TestHelpers.CreateSimpleWorkspace(new Dictionary <string, string> {
                { "foo.cs", source1 }, { "bar.cs", source2 }
            });

            var controller = new GotoDefinitionService(workspace, CreateMetadataHelper());
            RequestHandler <GotoDefinitionRequest, GotoDefinitionResponse> requestHandler = controller;
            var definitionResponse = await requestHandler.Handle(new GotoDefinitionRequest
            {
                FileName = "bar.cs",
                Line     = 1,
                Column   = 13,
                Timeout  = 60000
            });

            Assert.Null(definitionResponse.FileName);
            Assert.Equal(0, definitionResponse.Line);
            Assert.Equal(0, definitionResponse.Column);
        }
        public async Task ReturnsEmptyResultWhenDefinitionIsNotFound()
        {
            var source1 = @"using System;

class Foo {
}";
            var source2 = @"class Bar {
    private Baz foo;
}";

            var workspace = await TestHelpers.CreateSimpleWorkspace(new Dictionary<string, string> {
                { "foo.cs", source1 }, { "bar.cs", source2}
            });
            var controller = new GotoDefinitionService(workspace);
            RequestHandler<GotoDefinitionRequest, GotoDefinitionResponse> requestHandler = controller;
            var definitionResponse = await requestHandler.Handle(new GotoDefinitionRequest
            {
                FileName = "bar.cs",
                Line = 2,
                Column = 14,
                Timeout = 60000
            });

            Assert.Null(definitionResponse.FileName);
            Assert.Equal(0, definitionResponse.Line);
            Assert.Equal(0, definitionResponse.Column);
        }
        public async Task ReturnsLocationSourceDefinition()
        {
            var source1 = @"using System;

class Foo {
}";
            var source2 = @"class Bar {
    private Foo foo;
}";

            var workspace = await TestHelpers.CreateSimpleWorkspace(new Dictionary<string, string> {
                { "foo.cs", source1 }, { "bar.cs", source2}
            });
            var controller = new GotoDefinitionService(workspace, CreateMetadataHelper());
            RequestHandler<GotoDefinitionRequest, GotoDefinitionResponse> requestHandler = controller;
            var definitionResponse = await requestHandler.Handle(new GotoDefinitionRequest
            {
                FileName = "bar.cs",
                Line = 2,
                Column = 14,
                Timeout = 60000
            });

            Assert.Equal("foo.cs", definitionResponse.FileName);
            Assert.Equal(3, definitionResponse.Line);
            Assert.Equal(7, definitionResponse.Column);
        }
        public async Task ReturnsLocationSourceDefinition()
        {
            var source1 = @"using System;

class Foo {
}";
            var source2 = @"class Bar {
    private Foo foo;
}";

            var workspace = await TestHelpers.CreateSimpleWorkspace(new Dictionary <string, string> {
                { "foo.cs", source1 }, { "bar.cs", source2 }
            });

            var controller = new GotoDefinitionService(workspace);
            RequestHandler <GotoDefinitionRequest, GotoDefinitionResponse> requestHandler = controller;
            var definitionResponse = await requestHandler.Handle(new GotoDefinitionRequest
            {
                FileName = "bar.cs",
                Line     = 2,
                Column   = 14,
                Timeout  = 60000
            });

            Assert.Equal("foo.cs", definitionResponse.FileName);
            Assert.Equal(3, definitionResponse.Line);
            Assert.Equal(7, definitionResponse.Column);
        }
Ejemplo n.º 5
0
        public async Task ReturnsFullNameInMetadata_WhenSymbolIsType()
        {
            var controller = new GotoDefinitionService(await CreateTestWorkspace(), CreateMetadataHelper());
            RequestHandler <GotoDefinitionRequest, GotoDefinitionResponse> requestHandler = controller;
            var definitionResponse = await requestHandler.Handle(new GotoDefinitionRequest
            {
                FileName     = "bar.cs",
                Line         = 9,
                Column       = 22,
                Timeout      = 60000,
                WantMetadata = true
            });

            Assert.Null(definitionResponse.FileName);
            Assert.NotNull(definitionResponse.MetadataSource);
            Assert.Equal("System.Private.CoreLib", definitionResponse.MetadataSource.AssemblyName);
            Assert.Equal("System.String", definitionResponse.MetadataSource.TypeName);
            Assert.NotEqual(0, definitionResponse.Line);
            Assert.NotEqual(0, definitionResponse.Column);
        }
Ejemplo n.º 6
0
        public async Task ReturnsPositionInMetadata_WhenSymbolIsGenericType()
        {
            var controller = new GotoDefinitionService(await CreateTestWorkspace(), CreateMetadataHelper());
            RequestHandler <GotoDefinitionRequest, GotoDefinitionResponse> requestHandler = controller;
            var definitionResponse = await requestHandler.Handle(new GotoDefinitionRequest
            {
                FileName     = "bar.cs",
                Line         = 12,
                Column       = 26,
                Timeout      = 60000,
                WantMetadata = true
            });

            Assert.Null(definitionResponse.FileName);
            Assert.NotNull(definitionResponse.MetadataSource);
            Assert.Equal("mscorlib", definitionResponse.MetadataSource.AssemblyName);
            Assert.Equal("System.Collections.Generic.Dictionary`2", definitionResponse.MetadataSource.TypeName);
            Assert.NotEqual(0, definitionResponse.Line);
            Assert.NotEqual(0, definitionResponse.Column);
        }
Ejemplo n.º 7
0
        public async Task ReturnsPositionInMetadata_WhenSymbolIsExtensionMethod()
        {
            var controller = new GotoDefinitionService(await CreateTestWorkspace());
            RequestHandler <GotoDefinitionRequest, GotoDefinitionResponse> requestHandler = controller;
            var definitionResponse = await requestHandler.Handle(new GotoDefinitionRequest
            {
                FileName     = "bar.cs",
                Line         = 11,
                Column       = 17,
                Timeout      = 60000,
                WantMetadata = true
            });

            Assert.Null(definitionResponse.FileName);
            Assert.NotNull(definitionResponse.MetadataSource);
            Assert.Equal("System.Core", definitionResponse.MetadataSource.AssemblyName);
            Assert.Equal("System.Linq.Enumerable", definitionResponse.MetadataSource.TypeName);
            Assert.NotEqual(0, definitionResponse.Line);
            Assert.NotEqual(0, definitionResponse.Column);
        }
Ejemplo n.º 8
0
        public async Task ReturnsPositionInMetadata_WhenSymbolIsMethod()
        {
            var controller = new GotoDefinitionService(await CreateTestWorkspace(), CreateMetadataHelper());
            RequestHandler <GotoDefinitionRequest, GotoDefinitionResponse> requestHandler = controller;
            var definitionResponse = await requestHandler.Handle(new GotoDefinitionRequest
            {
                FileName     = "bar.cs",
                Line         = 12,
                Column       = 17,
                Timeout      = 60000,
                WantMetadata = true
            });

            Assert.Null(definitionResponse.FileName);
            Assert.NotNull(definitionResponse.MetadataSource);
            Assert.Equal("System.Private.CoreLib", definitionResponse.MetadataSource.AssemblyName);
            Assert.Equal("System.Guid", definitionResponse.MetadataSource.TypeName);
            // We probably shouldn't hard code metadata locations (they could change randomly)
            Assert.NotEqual(0, definitionResponse.Line);
            Assert.NotEqual(0, definitionResponse.Column);
        }
        public async Task ReturnsPositionInMetadata_WhenSymbolIsMethod()
        {
            var controller = new GotoDefinitionService(await CreateTestWorkspace());
            RequestHandler<GotoDefinitionRequest, GotoDefinitionResponse> requestHandler = controller;
            var definitionResponse = await requestHandler.Handle(new GotoDefinitionRequest
            {
                FileName = "bar.cs",
                Line = 13,
                Column = 18,
                Timeout = 60000,
                WantMetadata = true
            });

            Assert.Null(definitionResponse.FileName);
            Assert.NotNull(definitionResponse.MetadataSource);
            Assert.Equal("mscorlib", definitionResponse.MetadataSource.AssemblyName);
            Assert.Equal("System.Guid", definitionResponse.MetadataSource.TypeName);
            // We probably shouldn't hard code metadata locations (they could change randomly)
            Assert.NotEqual(0, definitionResponse.Line);
            Assert.NotEqual(0, definitionResponse.Column);
        }
        public async Task ReturnsPositionInMetadata_WhenSymbolIsExtensionMethod()
        {
            var controller = new GotoDefinitionService( await CreateTestWorkspace());
            RequestHandler<GotoDefinitionRequest, GotoDefinitionResponse> requestHandler = controller;
            var definitionResponse = await requestHandler.Handle(new GotoDefinitionRequest
            {
                FileName = "bar.cs",
                Line = 11,
                Column = 17,
                Timeout = 60000,
                WantMetadata = true
            });

            Assert.Null(definitionResponse.FileName);
            Assert.NotNull(definitionResponse.MetadataSource);
            Assert.Equal("mscorlib", definitionResponse.MetadataSource.AssemblyName);
            Assert.Equal("System.Collections.Generic.List`1", definitionResponse.MetadataSource.TypeName);
            Assert.NotEqual(0, definitionResponse.Line);
            Assert.NotEqual(0, definitionResponse.Column);
        }
        public async Task ReturnsFullNameInMetadata_WhenSymbolIsType()
        {
            var controller = new GotoDefinitionService(await CreateTestWorkspace(), CreateMetadataHelper());
            RequestHandler<GotoDefinitionRequest, GotoDefinitionResponse> requestHandler = controller;
            var definitionResponse = await requestHandler.Handle(new GotoDefinitionRequest
            {
                FileName = "bar.cs",
                Line = 10,
                Column = 23,
                Timeout = 60000,
                WantMetadata = true
            });

            Assert.Null(definitionResponse.FileName);
            Assert.NotNull(definitionResponse.MetadataSource);
            Assert.Equal("mscorlib", definitionResponse.MetadataSource.AssemblyName);
            Assert.Equal("System.String", definitionResponse.MetadataSource.TypeName);
            Assert.NotEqual(0, definitionResponse.Line);
            Assert.NotEqual(0, definitionResponse.Column);
        }