Skip to content

Commit 32451c0

Browse files
daviwilKayla Davis
authored andcommitted
Update LanguageServiceTests to use Workspace
This change updates the LanguageServiceTests class to use Workspace for managing file operations. It also re-enables some older tests that were disabled due to API changes around script references.
1 parent e12019f commit 32451c0

File tree

3 files changed

+81
-124
lines changed

3 files changed

+81
-124
lines changed

test/PowerShellEditorServices.Test.Shared/PowerShellEditorServices.Test.Shared.csproj

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,11 @@
5151
<Compile Include="Properties\AssemblyInfo.cs" />
5252
<Compile Include="References\FindsReferencesOnFunction.cs" />
5353
<Compile Include="References\FindsReferencesOnVariable.cs" />
54-
<Compile Include="Utility\ResourceFileLoader.cs" />
5554
</ItemGroup>
5655
<ItemGroup>
57-
<EmbeddedResource Include="Completion\CompletionExamples.ps1" />
56+
<None Include="Completion\CompletionExamples.ps1">
57+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
58+
</None>
5859
</ItemGroup>
5960
<ItemGroup>
6061
<ProjectReference Include="..\..\src\PowerShellEditorServices\PowerShellEditorServices.csproj">
@@ -63,14 +64,14 @@
6364
</ProjectReference>
6465
</ItemGroup>
6566
<ItemGroup>
66-
<EmbeddedResource Include="ParameterHints\ParamHints.ps1">
67+
<None Include="ParameterHints\ParamHints.ps1">
6768
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
68-
</EmbeddedResource>
69+
</None>
6970
</ItemGroup>
7071
<ItemGroup>
71-
<EmbeddedResource Include="References\SimpleFile.ps1">
72+
<None Include="References\SimpleFile.ps1">
7273
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
73-
</EmbeddedResource>
74+
</None>
7475
</ItemGroup>
7576
<ItemGroup />
7677
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

test/PowerShellEditorServices.Test.Shared/Utility/ResourceFileLoader.cs

Lines changed: 0 additions & 42 deletions
This file was deleted.

test/PowerShellEditorServices.Test/Language/LanguageServiceTests.cs

Lines changed: 74 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,27 @@
66
using Microsoft.PowerShell.EditorServices.Language;
77
using Microsoft.PowerShell.EditorServices.Session;
88
using Microsoft.PowerShell.EditorServices.Test.Shared.Completion;
9-
using Microsoft.PowerShell.EditorServices.Test.Shared.Utility;
109
using System;
1110
using System.Management.Automation.Runspaces;
1211
using System.Threading;
1312
using System.Linq;
1413
using Xunit;
1514
using Microsoft.PowerShell.EditorServices.Test.Shared.ParameterHint;
1615
using Microsoft.PowerShell.EditorServices.Test.Shared.Definition;
17-
using Microsoft.PowerShell.EditorServices.Test.Shared.References;
1816
using Microsoft.PowerShell.EditorServices.Test.Shared.Occurrences;
17+
using System.IO;
1918

2019
namespace Microsoft.PowerShell.EditorServices.Test.Language
2120
{
2221
public class LanguageServiceTests : IDisposable
2322
{
24-
private ResourceFileLoader fileLoader;
23+
private Workspace workspace;
2524
private Runspace languageServiceRunspace;
2625
private LanguageService languageService;
2726

2827
public LanguageServiceTests()
2928
{
30-
// Load script files from the shared assembly
31-
this.fileLoader =
32-
new ResourceFileLoader(
33-
typeof(CompleteCommandInFile).Assembly);
29+
this.workspace = new Workspace();
3430

3531
this.languageServiceRunspace = RunspaceFactory.CreateRunspace();
3632
this.languageServiceRunspace.ApartmentState = ApartmentState.STA;
@@ -108,55 +104,31 @@ public void LanguageServiceFindsCommandForParamHintsWithSpaces()
108104
Assert.Equal(1, paramSignatures.Signatures.Count());
109105
}
110106

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+
}
160132

161133
[Fact]
162134
public void LanguageServiceFindsOccurrencesOnFunction()
@@ -182,10 +154,18 @@ public void LanguageServiceFindsOccurrencesOnParameter()
182154
Assert.Equal(3, occurrencesResult.FoundOccurrences.Last().ScriptRegion.StartLineNumber);
183155
}
184156

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\";
188161

162+
string resolvedPath =
163+
Path.Combine(
164+
baseSharedScriptPath,
165+
scriptRegion.File);
166+
167+
return this.workspace.OpenFile(resolvedPath);
168+
}
189169

190170
private CompletionResults GetCompletionResults(ScriptRegion scriptRegion)
191171
{
@@ -206,23 +186,41 @@ private ParameterSetSignatures GetParamSetSignatures(ScriptRegion scriptRegion)
206186
scriptRegion.StartColumnNumber);
207187
}
208188

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+
}
226224

227225
private FindOccurrencesResult GetOccurrences(ScriptRegion scriptRegion)
228226
{

0 commit comments

Comments
 (0)