Skip to content

Commit 1714312

Browse files
Razmo99JustinGrote
authored andcommitted
reworked applicable utilities tests to be parameterized
1 parent 987e2b4 commit 1714312

File tree

2 files changed

+86
-119
lines changed

2 files changed

+86
-119
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Copyright (c) Microsoft Corporation.
2+
// Licensed under the MIT License.
3+
using Microsoft.PowerShell.EditorServices.Handlers;
4+
5+
namespace PowerShellEditorServices.Test.Shared.Refactoring.Utilities
6+
{
7+
internal static class RenameUtilitiesData
8+
{
9+
10+
public static readonly RenameSymbolParams GetVariableExpressionAst = new()
11+
{
12+
Column = 11,
13+
Line = 15,
14+
RenameTo = "Renamed",
15+
FileName = "TestDetection.ps1"
16+
};
17+
public static readonly RenameSymbolParams GetVariableExpressionStartAst = new()
18+
{
19+
Column = 1,
20+
Line = 15,
21+
RenameTo = "Renamed",
22+
FileName = "TestDetection.ps1"
23+
};
24+
public static readonly RenameSymbolParams GetVariableWithinParameterAst = new()
25+
{
26+
Column = 21,
27+
Line = 3,
28+
RenameTo = "Renamed",
29+
FileName = "TestDetection.ps1"
30+
};
31+
public static readonly RenameSymbolParams GetHashTableKey = new()
32+
{
33+
Column = 9,
34+
Line = 16,
35+
RenameTo = "Renamed",
36+
FileName = "TestDetection.ps1"
37+
};
38+
public static readonly RenameSymbolParams GetVariableWithinCommandAst = new()
39+
{
40+
Column = 29,
41+
Line = 6,
42+
RenameTo = "Renamed",
43+
FileName = "TestDetection.ps1"
44+
};
45+
public static readonly RenameSymbolParams GetCommandParameterAst = new()
46+
{
47+
Column = 12,
48+
Line = 21,
49+
RenameTo = "Renamed",
50+
FileName = "TestDetection.ps1"
51+
};
52+
public static readonly RenameSymbolParams GetFunctionDefinitionAst = new()
53+
{
54+
Column = 12,
55+
Line = 1,
56+
RenameTo = "Renamed",
57+
FileName = "TestDetection.ps1"
58+
};
59+
}
60+
}

test/PowerShellEditorServices.Test/Refactoring/RefactorUtilitiesTests.cs

+26-119
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,9 @@
1212
using Microsoft.PowerShell.EditorServices.Handlers;
1313
using Xunit;
1414
using System.Management.Automation.Language;
15+
using static PowerShellEditorServices.Test.Refactoring.RefactorUtilities;
1516
using Microsoft.PowerShell.EditorServices.Refactoring;
16-
using System.Management.Automation.Language;
17-
using System.Collections.Generic;
18-
using System.Linq;
17+
using PowerShellEditorServices.Test.Shared.Refactoring.Utilities;
1918

2019
namespace PowerShellEditorServices.Test.Refactoring
2120
{
@@ -34,140 +33,48 @@ public async Task InitializeAsync()
3433
public async Task DisposeAsync() => await Task.Run(psesHost.StopAsync);
3534
private ScriptFile GetTestScript(string fileName) => workspace.GetFile(TestUtilities.GetSharedPath(Path.Combine("Refactoring", "Utilities", fileName)));
3635

37-
[Fact]
38-
public void GetVariableExpressionAst()
39-
{
40-
RenameSymbolParams request = new()
41-
{
42-
Column = 11,
43-
Line = 15,
44-
RenameTo = "Renamed",
45-
FileName = "TestDetection.ps1"
46-
};
47-
ScriptFile scriptFile = GetTestScript(request.FileName);
48-
49-
Ast symbol = Utilities.GetAst(request.Line, request.Column, scriptFile.ScriptAst);
50-
Assert.Equal(15, symbol.Extent.StartLineNumber);
51-
Assert.Equal(1, symbol.Extent.StartColumnNumber);
5236

53-
}
54-
[Fact]
55-
public void GetVariableExpressionStartAst()
37+
public class GetAstShouldDetectTestData : TheoryData<RenameSymbolParamsSerialized, int, int>
5638
{
57-
RenameSymbolParams request = new()
39+
public GetAstShouldDetectTestData()
5840
{
59-
Column = 1,
60-
Line = 15,
61-
RenameTo = "Renamed",
62-
FileName = "TestDetection.ps1"
63-
};
64-
ScriptFile scriptFile = GetTestScript(request.FileName);
65-
66-
Ast symbol = Utilities.GetAst(request.Line, request.Column, scriptFile.ScriptAst);
67-
Assert.Equal(15, symbol.Extent.StartLineNumber);
68-
Assert.Equal(1, symbol.Extent.StartColumnNumber);
69-
41+
Add(new RenameSymbolParamsSerialized(RenameUtilitiesData.GetVariableExpressionAst), 15, 1);
42+
Add(new RenameSymbolParamsSerialized(RenameUtilitiesData.GetVariableExpressionStartAst), 15, 1);
43+
Add(new RenameSymbolParamsSerialized(RenameUtilitiesData.GetVariableWithinParameterAst), 3, 17);
44+
Add(new RenameSymbolParamsSerialized(RenameUtilitiesData.GetHashTableKey), 16, 5);
45+
Add(new RenameSymbolParamsSerialized(RenameUtilitiesData.GetVariableWithinCommandAst), 6, 28);
46+
Add(new RenameSymbolParamsSerialized(RenameUtilitiesData.GetCommandParameterAst), 21, 10);
47+
Add(new RenameSymbolParamsSerialized(RenameUtilitiesData.GetFunctionDefinitionAst), 1, 1);
48+
}
7049
}
71-
[Fact]
72-
public void GetVariableWithinParameterAst()
73-
{
74-
RenameSymbolParams request = new()
75-
{
76-
Column = 21,
77-
Line = 3,
78-
RenameTo = "Renamed",
79-
FileName = "TestDetection.ps1"
80-
};
81-
ScriptFile scriptFile = GetTestScript(request.FileName);
82-
83-
Ast symbol = Utilities.GetAst(request.Line, request.Column, scriptFile.ScriptAst);
84-
Assert.Equal(3, symbol.Extent.StartLineNumber);
85-
Assert.Equal(17, symbol.Extent.StartColumnNumber);
86-
87-
}
88-
[Fact]
89-
public void GetHashTableKey()
90-
{
91-
RenameSymbolParams request = new()
92-
{
93-
Column = 9,
94-
Line = 16,
95-
RenameTo = "Renamed",
96-
FileName = "TestDetection.ps1"
97-
};
98-
ScriptFile scriptFile = GetTestScript(request.FileName);
99-
100-
Ast symbol = Utilities.GetAst(request.Line, request.Column, scriptFile.ScriptAst);
101-
Assert.Equal(16, symbol.Extent.StartLineNumber);
102-
Assert.Equal(5, symbol.Extent.StartColumnNumber);
10350

104-
}
105-
[Fact]
106-
public void GetVariableWithinCommandAst()
51+
[Theory]
52+
[ClassData(typeof(GetAstShouldDetectTestData))]
53+
public void GetAstShouldDetect(RenameSymbolParamsSerialized s, int l, int c)
10754
{
108-
RenameSymbolParams request = new()
109-
{
110-
Column = 29,
111-
Line = 6,
112-
RenameTo = "Renamed",
113-
FileName = "TestDetection.ps1"
114-
};
115-
ScriptFile scriptFile = GetTestScript(request.FileName);
116-
117-
Ast symbol = Utilities.GetAst(request.Line, request.Column, scriptFile.ScriptAst);
118-
Assert.Equal(6, symbol.Extent.StartLineNumber);
119-
Assert.Equal(28, symbol.Extent.StartColumnNumber);
120-
55+
ScriptFile scriptFile = GetTestScript(s.FileName);
56+
Ast symbol = Utilities.GetAst(s.Line, s.Column, scriptFile.ScriptAst);
57+
// Assert the Line and Column is what is expected
58+
Assert.Equal(l, symbol.Extent.StartLineNumber);
59+
Assert.Equal(c, symbol.Extent.StartColumnNumber);
12160
}
122-
[Fact]
123-
public void GetCommandParameterAst()
124-
{
125-
RenameSymbolParams request = new()
126-
{
127-
Column = 12,
128-
Line = 21,
129-
RenameTo = "Renamed",
130-
FileName = "TestDetection.ps1"
131-
};
132-
ScriptFile scriptFile = GetTestScript(request.FileName);
13361

134-
Ast symbol = Utilities.GetAst(request.Line, request.Column, scriptFile.ScriptAst);
135-
Assert.Equal(21, symbol.Extent.StartLineNumber);
136-
Assert.Equal(10, symbol.Extent.StartColumnNumber);
137-
138-
}
13962
[Fact]
140-
public void GetFunctionDefinitionAst()
63+
public void GetVariableUnderFunctionDef()
14164
{
14265
RenameSymbolParams request = new()
14366
{
144-
Column = 12,
145-
Line = 1,
67+
Column = 5,
68+
Line = 2,
14669
RenameTo = "Renamed",
147-
FileName = "TestDetection.ps1"
70+
FileName = "TestDetectionUnderFunctionDef.ps1"
14871
};
14972
ScriptFile scriptFile = GetTestScript(request.FileName);
15073

15174
Ast symbol = Utilities.GetAst(request.Line, request.Column, scriptFile.ScriptAst);
152-
Assert.Equal(1, symbol.Extent.StartLineNumber);
153-
Assert.Equal(1, symbol.Extent.StartColumnNumber);
154-
155-
}
156-
[Fact]
157-
public void GetVariableUnderFunctionDef()
158-
{
159-
RenameSymbolParams request = new(){
160-
Column=5,
161-
Line=2,
162-
RenameTo="Renamed",
163-
FileName="TestDetectionUnderFunctionDef.ps1"
164-
};
165-
ScriptFile scriptFile = GetTestScript(request.FileName);
166-
167-
Ast symbol = Utilities.GetAst(request.Line,request.Column,scriptFile.ScriptAst);
16875
Assert.IsType<VariableExpressionAst>(symbol);
169-
Assert.Equal(2,symbol.Extent.StartLineNumber);
170-
Assert.Equal(5,symbol.Extent.StartColumnNumber);
76+
Assert.Equal(2, symbol.Extent.StartLineNumber);
77+
Assert.Equal(5, symbol.Extent.StartColumnNumber);
17178

17279
}
17380
[Fact]

0 commit comments

Comments
 (0)