6
6
using Microsoft . PowerShell . EditorServices . Language ;
7
7
using Microsoft . PowerShell . EditorServices . Session ;
8
8
using Microsoft . PowerShell . EditorServices . Test . Shared . Completion ;
9
- using Microsoft . PowerShell . EditorServices . Test . Shared . Utility ;
10
9
using System ;
11
10
using System . Management . Automation . Runspaces ;
12
11
using System . Threading ;
13
12
using System . Linq ;
14
13
using Xunit ;
15
14
using Microsoft . PowerShell . EditorServices . Test . Shared . ParameterHint ;
16
15
using Microsoft . PowerShell . EditorServices . Test . Shared . Definition ;
17
- using Microsoft . PowerShell . EditorServices . Test . Shared . References ;
18
16
using Microsoft . PowerShell . EditorServices . Test . Shared . Occurrences ;
17
+ using System . IO ;
19
18
20
19
namespace Microsoft . PowerShell . EditorServices . Test . Language
21
20
{
22
21
public class LanguageServiceTests : IDisposable
23
22
{
24
- private ResourceFileLoader fileLoader ;
23
+ private Workspace workspace ;
25
24
private Runspace languageServiceRunspace ;
26
25
private LanguageService languageService ;
27
26
28
27
public LanguageServiceTests ( )
29
28
{
30
- // Load script files from the shared assembly
31
- this . fileLoader =
32
- new ResourceFileLoader (
33
- typeof ( CompleteCommandInFile ) . Assembly ) ;
29
+ this . workspace = new Workspace ( ) ;
34
30
35
31
this . languageServiceRunspace = RunspaceFactory . CreateRunspace ( ) ;
36
32
this . languageServiceRunspace . ApartmentState = ApartmentState . STA ;
@@ -108,55 +104,31 @@ public void LanguageServiceFindsCommandForParamHintsWithSpaces()
108
104
Assert . Equal ( 1 , paramSignatures . Signatures . Count ( ) ) ;
109
105
}
110
106
111
- //[Fact]
112
- //public void LanguageServiceFindsFunctionDefinition()
113
- //{
114
- // GetDefinitionResult definitionResult =
115
- // this.GetDefinition(
116
- // FindsFunctionDefinition.SourceDetails);
117
-
118
- // SymbolReference definition = definitionResult.FoundDefinition;
119
- // Assert.Equal(1, definition.ScriptRegion.StartLineNumber);
120
- // Assert.Equal(10, definition.ScriptRegion.StartColumnNumber);
121
- // Assert.Equal("My-Function", definition.SymbolName);
122
- //}
123
-
124
- //[Fact]
125
- //public void LanguageServiceFindsVariableDefinition()
126
- //{
127
- // GetDefinitionResult definitionResult =
128
- // this.GetDefinition(
129
- // FindsVariableDefinition.SourceDetails);
130
-
131
- // SymbolReference definition = definitionResult.FoundDefinition;
132
- // Assert.Equal(6, definition.ScriptRegion.StartLineNumber);
133
- // Assert.Equal(1, definition.ScriptRegion.StartColumnNumber);
134
- // Assert.Equal("$things", definition.SymbolName);
135
- //}
136
-
137
- //[Fact]
138
- //public void LanguageServiceFindsFunctionReferences()
139
- //{
140
- // FindReferencesResult referencesResult =
141
- // this.GetReferences(
142
- // FindsReferencesOnFunction.SourceDetails);
143
-
144
- // Assert.Equal(3, referencesResult.FoundReferences.Count());
145
- // Assert.Equal(1, referencesResult.FoundReferences.First().ScriptRegion.StartLineNumber);
146
- // Assert.Equal(10, referencesResult.FoundReferences.First().ScriptRegion.StartColumnNumber);
147
- //}
148
-
149
- //[Fact]
150
- //public void LanguageServiceFindsVariableReferences()
151
- //{
152
- // FindReferencesResult referencesResult =
153
- // this.GetReferences(
154
- // FindsReferencesOnVariable.SourceDetails);
155
-
156
- // Assert.Equal(3, referencesResult.FoundReferences.Count());
157
- // Assert.Equal(10, referencesResult.FoundReferences.Last().ScriptRegion.StartLineNumber);
158
- // Assert.Equal(13, referencesResult.FoundReferences.Last().ScriptRegion.StartColumnNumber);
159
- //}
107
+ [ Fact ]
108
+ public void LanguageServiceFindsFunctionDefinition ( )
109
+ {
110
+ GetDefinitionResult definitionResult =
111
+ this . GetDefinition (
112
+ FindsFunctionDefinition . SourceDetails ) ;
113
+
114
+ SymbolReference definition = definitionResult . FoundDefinition ;
115
+ Assert . Equal ( 1 , definition . ScriptRegion . StartLineNumber ) ;
116
+ Assert . Equal ( 10 , definition . ScriptRegion . StartColumnNumber ) ;
117
+ Assert . Equal ( "My-Function" , definition . SymbolName ) ;
118
+ }
119
+
120
+ [ Fact ]
121
+ public void LanguageServiceFindsVariableDefinition ( )
122
+ {
123
+ GetDefinitionResult definitionResult =
124
+ this . GetDefinition (
125
+ FindsVariableDefinition . SourceDetails ) ;
126
+
127
+ SymbolReference definition = definitionResult . FoundDefinition ;
128
+ Assert . Equal ( 6 , definition . ScriptRegion . StartLineNumber ) ;
129
+ Assert . Equal ( 1 , definition . ScriptRegion . StartColumnNumber ) ;
130
+ Assert . Equal ( "$things" , definition . SymbolName ) ;
131
+ }
160
132
161
133
[ Fact ]
162
134
public void LanguageServiceFindsOccurrencesOnFunction ( )
@@ -182,10 +154,18 @@ public void LanguageServiceFindsOccurrencesOnParameter()
182
154
Assert . Equal ( 3 , occurrencesResult . FoundOccurrences . Last ( ) . ScriptRegion . StartLineNumber ) ;
183
155
}
184
156
185
- private ScriptFile GetScriptFile ( ScriptRegion scriptRegion ) {
186
- return this . fileLoader . LoadFile ( scriptRegion . File ) ;
187
- }
157
+ private ScriptFile GetScriptFile ( ScriptRegion scriptRegion )
158
+ {
159
+ const string baseSharedScriptPath =
160
+ @"..\..\..\PowerShellEditorServices.Test.Shared\" ;
188
161
162
+ string resolvedPath =
163
+ Path . Combine (
164
+ baseSharedScriptPath ,
165
+ scriptRegion . File ) ;
166
+
167
+ return this . workspace . OpenFile ( resolvedPath ) ;
168
+ }
189
169
190
170
private CompletionResults GetCompletionResults ( ScriptRegion scriptRegion )
191
171
{
@@ -206,23 +186,41 @@ private ParameterSetSignatures GetParamSetSignatures(ScriptRegion scriptRegion)
206
186
scriptRegion . StartColumnNumber ) ;
207
187
}
208
188
209
- //private GetDefinitionResult GetDefinition(ScriptRegion scriptRegion)
210
- //{
211
- // return
212
- // this.languageService.GetDefinitionOfSymbol(
213
- // GetScriptFile(scriptRegion),
214
- // scriptRegion.StartLineNumber,
215
- // scriptRegion.StartColumnNumber);
216
- //}
217
-
218
- //private FindReferencesResult GetReferences(ScriptRegion scriptRegion)
219
- //{
220
- // SymbolReference foundSymbol =
221
- // this.languageService.FindSymbolAtLocation(
222
- // GetScriptFile(scriptRegion),
223
- // scriptRegion.StartLineNumber,
224
- // scriptRegion.StartColumnNumber);
225
- //}
189
+ private GetDefinitionResult GetDefinition ( ScriptRegion scriptRegion )
190
+ {
191
+ ScriptFile scriptFile = GetScriptFile ( scriptRegion ) ;
192
+
193
+ SymbolReference symbolReference =
194
+ this . languageService . FindSymbolAtLocation (
195
+ scriptFile ,
196
+ scriptRegion . StartLineNumber ,
197
+ scriptRegion . StartColumnNumber ) ;
198
+
199
+ Assert . NotNull ( symbolReference ) ;
200
+
201
+ return
202
+ this . languageService . GetDefinitionOfSymbol (
203
+ symbolReference ,
204
+ this . workspace . ExpandScriptReferences ( scriptFile ) ) ;
205
+ }
206
+
207
+ private FindReferencesResult GetReferences ( ScriptRegion scriptRegion )
208
+ {
209
+ ScriptFile scriptFile = GetScriptFile ( scriptRegion ) ;
210
+
211
+ SymbolReference symbolReference =
212
+ this . languageService . FindSymbolAtLocation (
213
+ scriptFile ,
214
+ scriptRegion . StartLineNumber ,
215
+ scriptRegion . StartColumnNumber ) ;
216
+
217
+ Assert . NotNull ( symbolReference ) ;
218
+
219
+ return
220
+ this . languageService . FindReferencesOfSymbol (
221
+ symbolReference ,
222
+ this . workspace . ExpandScriptReferences ( scriptFile ) ) ;
223
+ }
226
224
227
225
private FindOccurrencesResult GetOccurrences ( ScriptRegion scriptRegion )
228
226
{
0 commit comments