Skip to content

Commit 1a1168c

Browse files
Razmo99JustinGrote
authored andcommitted
moved serializer and getmodifiedscriptcontent seperate file as it will be reused for variable tests
1 parent 6a76bdc commit 1a1168c

File tree

2 files changed

+71
-59
lines changed

2 files changed

+71
-59
lines changed

test/PowerShellEditorServices.Test/Refactoring/RefactorFunctionTests.cs

Lines changed: 1 addition & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// Copyright (c) Microsoft Corporation.
22
// Licensed under the MIT License.
33

4-
using System;
54
using System.IO;
65
using System.Threading.Tasks;
76
using Microsoft.Extensions.Logging.Abstractions;
@@ -15,8 +14,7 @@
1514
using Microsoft.PowerShell.EditorServices.Services.Symbols;
1615
using Microsoft.PowerShell.EditorServices.Refactoring;
1716
using PowerShellEditorServices.Test.Shared.Refactoring.Functions;
18-
using Xunit.Abstractions;
19-
using MediatR;
17+
using static PowerShellEditorServices.Test.Refactoring.RefactorUtilities;
2018

2119
namespace PowerShellEditorServices.Test.Refactoring
2220
{
@@ -36,24 +34,6 @@ public async Task InitializeAsync()
3634
public async Task DisposeAsync() => await Task.Run(psesHost.StopAsync);
3735
private ScriptFile GetTestScript(string fileName) => workspace.GetFile(TestUtilities.GetSharedPath(Path.Combine("Refactoring", "Functions", fileName)));
3836

39-
internal static string GetModifiedScript(string OriginalScript, ModifiedFileResponse Modification)
40-
{
41-
42-
string[] Lines = OriginalScript.Split(
43-
new string[] { Environment.NewLine },
44-
StringSplitOptions.None);
45-
46-
foreach (TextChange change in Modification.Changes)
47-
{
48-
string TargetLine = Lines[change.StartLine];
49-
string begin = TargetLine.Substring(0, change.StartColumn);
50-
string end = TargetLine.Substring(change.EndColumn);
51-
Lines[change.StartLine] = begin + change.NewText + end;
52-
}
53-
54-
return string.Join(Environment.NewLine, Lines);
55-
}
56-
5737
internal static string TestRenaming(ScriptFile scriptFile, RenameSymbolParamsSerialized request, SymbolReference symbol)
5838
{
5939
IterativeFunctionRename iterative = new(symbol.NameRegion.Text,
@@ -69,44 +49,6 @@ internal static string TestRenaming(ScriptFile scriptFile, RenameSymbolParamsSer
6949
return GetModifiedScript(scriptFile.Contents, changes);
7050
}
7151

72-
public class RenameSymbolParamsSerialized : IRequest<RenameSymbolResult>, IXunitSerializable
73-
{
74-
public string FileName { get; set; }
75-
public int Line { get; set; }
76-
public int Column { get; set; }
77-
public string RenameTo { get; set; }
78-
79-
// Default constructor needed for deserialization
80-
public RenameSymbolParamsSerialized() { }
81-
82-
// Parameterized constructor for convenience
83-
public RenameSymbolParamsSerialized(RenameSymbolParams RenameSymbolParams)
84-
{
85-
FileName = RenameSymbolParams.FileName;
86-
Line = RenameSymbolParams.Line;
87-
Column = RenameSymbolParams.Column;
88-
RenameTo = RenameSymbolParams.RenameTo;
89-
}
90-
91-
public void Deserialize(IXunitSerializationInfo info)
92-
{
93-
FileName = info.GetValue<string>("FileName");
94-
Line = info.GetValue<int>("Line");
95-
Column = info.GetValue<int>("Column");
96-
RenameTo = info.GetValue<string>("RenameTo");
97-
}
98-
99-
public void Serialize(IXunitSerializationInfo info)
100-
{
101-
info.AddValue("FileName", FileName);
102-
info.AddValue("Line", Line);
103-
info.AddValue("Column", Column);
104-
info.AddValue("RenameTo", RenameTo);
105-
}
106-
107-
public override string ToString() => $"{FileName}";
108-
}
109-
11052
public class FunctionRenameTestData : TheoryData<RenameSymbolParamsSerialized>
11153
{
11254
public FunctionRenameTestData()
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
2+
using System;
3+
using Microsoft.PowerShell.EditorServices.Handlers;
4+
using Xunit.Abstractions;
5+
using MediatR;
6+
7+
namespace PowerShellEditorServices.Test.Refactoring
8+
{
9+
public class RefactorUtilities
10+
11+
{
12+
13+
internal static string GetModifiedScript(string OriginalScript, ModifiedFileResponse Modification)
14+
{
15+
16+
string[] Lines = OriginalScript.Split(
17+
new string[] { Environment.NewLine },
18+
StringSplitOptions.None);
19+
20+
foreach (TextChange change in Modification.Changes)
21+
{
22+
string TargetLine = Lines[change.StartLine];
23+
string begin = TargetLine.Substring(0, change.StartColumn);
24+
string end = TargetLine.Substring(change.EndColumn);
25+
Lines[change.StartLine] = begin + change.NewText + end;
26+
}
27+
28+
return string.Join(Environment.NewLine, Lines);
29+
}
30+
31+
public class RenameSymbolParamsSerialized : IRequest<RenameSymbolResult>, IXunitSerializable
32+
{
33+
public string FileName { get; set; }
34+
public int Line { get; set; }
35+
public int Column { get; set; }
36+
public string RenameTo { get; set; }
37+
38+
// Default constructor needed for deserialization
39+
public RenameSymbolParamsSerialized() { }
40+
41+
// Parameterized constructor for convenience
42+
public RenameSymbolParamsSerialized(RenameSymbolParams RenameSymbolParams)
43+
{
44+
FileName = RenameSymbolParams.FileName;
45+
Line = RenameSymbolParams.Line;
46+
Column = RenameSymbolParams.Column;
47+
RenameTo = RenameSymbolParams.RenameTo;
48+
}
49+
50+
public void Deserialize(IXunitSerializationInfo info)
51+
{
52+
FileName = info.GetValue<string>("FileName");
53+
Line = info.GetValue<int>("Line");
54+
Column = info.GetValue<int>("Column");
55+
RenameTo = info.GetValue<string>("RenameTo");
56+
}
57+
58+
public void Serialize(IXunitSerializationInfo info)
59+
{
60+
info.AddValue("FileName", FileName);
61+
info.AddValue("Line", Line);
62+
info.AddValue("Column", Column);
63+
info.AddValue("RenameTo", RenameTo);
64+
}
65+
66+
public override string ToString() => $"{FileName}";
67+
}
68+
69+
}
70+
}

0 commit comments

Comments
 (0)