Skip to content

Commit 510f526

Browse files
committed
pass compiler
1 parent 69ed302 commit 510f526

29 files changed

+794
-598
lines changed

LanguageServer.Framework.Tests/Handlers/CallHierarchyHandlerTests.cs

Lines changed: 69 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using EmmyLua.LanguageServer.Framework.Protocol.Message.CallHierarchy;
44
using EmmyLua.LanguageServer.Framework.Protocol.Message.DocumentSymbol;
55
using EmmyLua.LanguageServer.Framework.Protocol.Model;
6-
using EmmyLua.LanguageServer.Framework.Protocol.Model.Kind;
76
using EmmyLua.LanguageServer.Framework.Protocol.Model.TextDocument;
87
using EmmyLua.LanguageServer.Framework.Server.Handler;
98
using EmmyLua.LanguageServer.Framework.Tests.TestBase;
@@ -16,7 +15,8 @@ public class CallHierarchyHandlerTests : TestHandlerBase
1615
{
1716
private class TestCallHierarchyHandler : CallHierarchyHandlerBase
1817
{
19-
protected override Task<CallHierarchyPrepareResponse?> CallHierarchyPrepare(CallHierarchyPrepareParams request, CancellationToken token)
18+
protected override Task<CallHierarchyPrepareResponse?> CallHierarchyPrepare(CallHierarchyPrepareParams request,
19+
CancellationToken token)
2020
{
2121
var items = new List<CallHierarchyItem>
2222
{
@@ -25,95 +25,72 @@ private class TestCallHierarchyHandler : CallHierarchyHandlerBase
2525
Name = "testFunction",
2626
Kind = SymbolKind.Function,
2727
Uri = "file:///test.txt",
28-
Range = new LocationRange
29-
{
30-
Start = new Position { Line = 5, Character = 0 },
31-
End = new Position { Line = 10, Character = 0 }
32-
},
33-
SelectionRange = new LocationRange
34-
{
35-
Start = new Position { Line = 5, Character = 9 },
36-
End = new Position { Line = 5, Character = 21 }
37-
}
28+
Range = new DocumentRange(
29+
new Position { Line = 5, Character = 0 },
30+
new Position { Line = 10, Character = 0 }
31+
),
32+
SelectionRange = new DocumentRange(
33+
new Position { Line = 5, Character = 9 },
34+
new Position { Line = 5, Character = 21 }
35+
)
3836
}
3937
};
4038

4139
return Task.FromResult<CallHierarchyPrepareResponse?>(new CallHierarchyPrepareResponse(items));
4240
}
4341

44-
protected override Task<CallHierarchyIncomingCallsResponse> CallHierarchyIncomingCalls(CallHierarchyIncomingCallsParams request, CancellationToken token)
42+
protected override Task<CallHierarchyIncomingCallsResponse> CallHierarchyIncomingCalls(
43+
CallHierarchyIncomingCallsParams request, CancellationToken token)
4544
{
4645
var calls = new List<CallHierarchyIncomingCall>
4746
{
4847
new CallHierarchyIncomingCall
4948
{
50-
From = new CallHierarchyItem
49+
From = new Location
5150
{
52-
Name = "caller",
53-
Kind = SymbolKind.Function,
5451
Uri = "file:///caller.txt",
55-
Range = new LocationRange
56-
{
57-
Start = new Position { Line = 15, Character = 0 },
58-
End = new Position { Line = 20, Character = 0 }
59-
},
60-
SelectionRange = new LocationRange
61-
{
62-
Start = new Position { Line = 15, Character = 9 },
63-
End = new Position { Line = 15, Character = 15 }
64-
}
52+
Range = new DocumentRange(
53+
new Position { Line = 15, Character = 0 },
54+
new Position { Line = 20, Character = 0 }
55+
)
6556
},
66-
FromRanges = new List<LocationRange>
67-
{
68-
new LocationRange
69-
{
70-
Start = new Position { Line = 17, Character = 4 },
71-
End = new Position { Line = 17, Character = 16 }
72-
}
73-
}
57+
FromRanges = new DocumentRange(
58+
new Position { Line = 17, Character = 4 },
59+
new Position { Line = 17, Character = 16 }
60+
)
7461
}
7562
};
7663

77-
return Task.FromResult<CallHierarchyIncomingCallsResponse?>(new CallHierarchyIncomingCallsResponse(calls));
64+
return Task.FromResult(new CallHierarchyIncomingCallsResponse(calls));
7865
}
7966

80-
protected override Task<CallHierarchyOutgoingCallsResponse> CallHierarchyOutgoingCalls(CallHierarchyOutgoingCallsParams request, CancellationToken token)
67+
protected override Task<CallHierarchyOutgoingCallsResponse> CallHierarchyOutgoingCalls(
68+
CallHierarchyOutgoingCallsParams request, CancellationToken token)
8169
{
8270
var calls = new List<CallHierarchyOutgoingCall>
8371
{
8472
new CallHierarchyOutgoingCall
8573
{
86-
To = new CallHierarchyItem
74+
To = new Location
8775
{
88-
Name = "callee",
89-
Kind = SymbolKind.Function,
9076
Uri = "file:///callee.txt",
91-
Range = new LocationRange
92-
{
93-
Start = new Position { Line = 25, Character = 0 },
94-
End = new Position { Line = 30, Character = 0 }
95-
},
96-
SelectionRange = new LocationRange
97-
{
98-
Start = new Position { Line = 25, Character = 9 },
99-
End = new Position { Line = 25, Character = 15 }
100-
}
77+
Range = new DocumentRange(
78+
new Position { Line = 25, Character = 0 },
79+
new Position { Line = 30, Character = 0 }
80+
)
10181
},
102-
FromRanges = new List<LocationRange>
103-
{
104-
new LocationRange
105-
{
106-
Start = new Position { Line = 7, Character = 4 },
107-
End = new Position { Line = 7, Character = 10 }
108-
}
109-
}
82+
FromRanges = new DocumentRange(
83+
new Position { Line = 7, Character = 4 },
84+
new Position { Line = 7, Character = 10 }
85+
)
11086
}
11187
};
11288

113-
return Task.FromResult<CallHierarchyOutgoingCallsResponse?>(new CallHierarchyOutgoingCallsResponse(calls));
89+
return Task.FromResult(new CallHierarchyOutgoingCallsResponse(calls));
11490
}
11591

116-
public override void RegisterCapability(ServerCapabilities serverCapabilities, ClientCapabilities clientCapabilities)
92+
public override void RegisterCapability(ServerCapabilities serverCapabilities,
93+
ClientCapabilities clientCapabilities)
11794
{
11895
serverCapabilities.CallHierarchyProvider = true;
11996
}
@@ -126,22 +103,24 @@ public async Task Prepare_ShouldReturnCallHierarchyItems()
126103
var handler = new TestCallHierarchyHandler();
127104
var request = new CallHierarchyPrepareParams
128105
{
129-
TextDocument = new TextDocumentIdentifier { Uri = "file:///test.txt" },
106+
TextDocument = new TextDocumentIdentifier("file:///test.txt"),
130107
Position = new Position { Line = 5, Character = 15 }
131108
};
132109

133110
// Act
134-
var result = await handler.GetType()
135-
.GetMethod("CallHierarchyPrepare", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)!
136-
.Invoke(handler, new object[] { request, CancellationToken.None }) as Task<CallHierarchyPrepareResponse?>;
111+
var method = handler.GetType()
112+
.GetMethod("CallHierarchyPrepare",
113+
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)!;
114+
115+
var task = method.Invoke(handler, [request, CancellationToken.None]);
137116

138-
var response = await result!;
117+
var response = await (task as Task<CallHierarchyPrepareResponse?>)!;
139118

140119
// Assert
141120
response.Should().NotBeNull();
142-
response!.CallHierarchyItems.Should().HaveCount(1);
143-
response.CallHierarchyItems[0].Name.Should().Be("testFunction");
144-
response.CallHierarchyItems[0].Kind.Should().Be(SymbolKind.Function);
121+
response!.Result.Should().HaveCount(1);
122+
response.Result![0].Name.Should().Be("testFunction");
123+
response.Result[0].Kind.Should().Be(SymbolKind.Function);
145124
}
146125

147126
[Fact]
@@ -156,22 +135,25 @@ public async Task IncomingCalls_ShouldReturnIncomingCalls()
156135
Name = "testFunction",
157136
Kind = SymbolKind.Function,
158137
Uri = "file:///test.txt",
159-
Range = new LocationRange { Start = new Position(), End = new Position() },
160-
SelectionRange = new LocationRange { Start = new Position(), End = new Position() }
138+
Range = new DocumentRange(new Position(), new Position()),
139+
SelectionRange = new DocumentRange(new Position(), new Position())
161140
}
162141
};
163142

164143
// Act
165-
var result = await handler.GetType()
166-
.GetMethod("CallHierarchyIncomingCalls", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)!
167-
.Invoke(handler, new object[] { request, CancellationToken.None }) as Task<CallHierarchyIncomingCallsResponse>;
144+
var method = handler.GetType()
145+
.GetMethod("CallHierarchyIncomingCalls",
146+
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)!;
168147

169-
var response = await result!;
148+
var task = method.Invoke(handler, [request, CancellationToken.None]);
149+
150+
var response = await (task as Task<CallHierarchyIncomingCallsResponse>)!;
170151

171152
// Assert
172153
response.Should().NotBeNull();
173-
response!.IncomingCalls.Should().HaveCount(1);
174-
response.IncomingCalls[0].From.Name.Should().Be("caller");
154+
response!.Result.Should().HaveCount(1);
155+
response.Result[0].From.Uri.Should().Be("file:///caller.txt");
156+
response.Result[0].From.Range.Start.Line.Should().Be(15);
175157
}
176158

177159
[Fact]
@@ -186,22 +168,25 @@ public async Task OutgoingCalls_ShouldReturnOutgoingCalls()
186168
Name = "testFunction",
187169
Kind = SymbolKind.Function,
188170
Uri = "file:///test.txt",
189-
Range = new LocationRange { Start = new Position(), End = new Position() },
190-
SelectionRange = new LocationRange { Start = new Position(), End = new Position() }
171+
Range = new DocumentRange(new Position(), new Position()),
172+
SelectionRange = new DocumentRange(new Position(), new Position())
191173
}
192174
};
193175

194176
// Act
195-
var result = await handler.GetType()
196-
.GetMethod("CallHierarchyOutgoingCalls", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)!
197-
.Invoke(handler, new object[] { request, CancellationToken.None }) as Task<CallHierarchyOutgoingCallsResponse>;
177+
var method = handler.GetType()
178+
.GetMethod("CallHierarchyOutgoingCalls",
179+
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)!;
180+
181+
var task = method.Invoke(handler, [request, CancellationToken.None]);
198182

199-
var response = await result!;
183+
var response = await (task as Task<CallHierarchyOutgoingCallsResponse>)!;
200184

201185
// Assert
202186
response.Should().NotBeNull();
203-
response!.OutgoingCalls.Should().HaveCount(1);
204-
response.OutgoingCalls[0].To.Name.Should().Be("callee");
187+
response!.Result.Should().HaveCount(1);
188+
response.Result[0].To.Uri.Should().Be("file:///callee.txt");
189+
response.Result[0].To.Range.Start.Line.Should().Be(25);
205190
}
206191

207192
[Fact]
@@ -218,4 +203,4 @@ public void RegisterCapability_ShouldEnableCallHierarchyProvider()
218203
// Assert
219204
serverCapabilities.CallHierarchyProvider.Should().NotBeNull();
220205
}
221-
}
206+
}

0 commit comments

Comments
 (0)