Skip to content

Commit 2aeca75

Browse files
fflatenandyleejordan
authored andcommitted
add symbol tests using newline after keyword
1 parent a20cf99 commit 2aeca75

File tree

3 files changed

+100
-0
lines changed

3 files changed

+100
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Copyright (c) Microsoft Corporation.
2+
// Licensed under the MIT License.
3+
4+
using Microsoft.PowerShell.EditorServices.Services.TextDocument;
5+
6+
namespace Microsoft.PowerShell.EditorServices.Test.Shared.Symbols
7+
{
8+
public static class FindSymbolsInNewLineSymbolFile
9+
{
10+
public static readonly ScriptRegion SourceDetails =
11+
new(
12+
file: TestUtilities.NormalizePath("Symbols/NewLineSymbols.ps1"),
13+
text: string.Empty,
14+
startLineNumber: 0,
15+
startColumnNumber: 0,
16+
startOffset: 0,
17+
endLineNumber: 0,
18+
endColumnNumber: 0,
19+
endOffset: 0);
20+
}
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
function
2+
returnTrue {
3+
$true
4+
}
5+
6+
class
7+
NewLineClass {
8+
NewLineClass() {
9+
10+
}
11+
12+
static
13+
hidden
14+
[string]
15+
$SomePropWithDefault = 'some value'
16+
17+
static
18+
hidden
19+
[string]
20+
MyClassMethod([MyNewLineEnum]$param1) {
21+
return 'hello world $param1'
22+
}
23+
}
24+
25+
enum
26+
MyNewLineEnum {
27+
First
28+
}

test/PowerShellEditorServices.Test/Language/SymbolsServiceTests.cs

+51
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,57 @@ public void FindsSymbolsInFile()
611611
Assert.Equal(5, firstEnumMemberSymbol.ScriptRegion.StartColumnNumber);
612612
}
613613

614+
[Fact]
615+
public void FindsSymbolsWithNewLineInFile()
616+
{
617+
List<SymbolReference> symbolsResult =
618+
FindSymbolsInFile(
619+
FindSymbolsInNewLineSymbolFile.SourceDetails);
620+
621+
Assert.Single(symbolsResult.Where(symbolReference => symbolReference.SymbolType == SymbolType.Function));
622+
Assert.Single(symbolsResult.Where(symbolReference => symbolReference.SymbolType == SymbolType.Class));
623+
Assert.Single(symbolsResult.Where(symbolReference => symbolReference.SymbolType == SymbolType.Constructor));
624+
Assert.Single(symbolsResult.Where(symbolReference => symbolReference.SymbolType == SymbolType.Property));
625+
Assert.Single(symbolsResult.Where(symbolReference => symbolReference.SymbolType == SymbolType.Method));
626+
Assert.Single(symbolsResult.Where(symbolReference => symbolReference.SymbolType == SymbolType.Enum));
627+
Assert.Single(symbolsResult.Where(symbolReference => symbolReference.SymbolType == SymbolType.EnumMember));
628+
629+
SymbolReference firstFunctionSymbol = symbolsResult.First(r => r.SymbolType == SymbolType.Function);
630+
Assert.Equal("returnTrue", firstFunctionSymbol.SymbolName);
631+
Assert.Equal(2, firstFunctionSymbol.ScriptRegion.StartLineNumber);
632+
Assert.Equal(1, firstFunctionSymbol.ScriptRegion.StartColumnNumber);
633+
634+
SymbolReference firstClassSymbol = symbolsResult.First(r => r.SymbolType == SymbolType.Class);
635+
Assert.Equal("NewLineClass", firstClassSymbol.SymbolName);
636+
Assert.Equal(7, firstClassSymbol.ScriptRegion.StartLineNumber);
637+
Assert.Equal(1, firstClassSymbol.ScriptRegion.StartColumnNumber);
638+
639+
SymbolReference firstConstructorSymbol = symbolsResult.First(r => r.SymbolType == SymbolType.Constructor);
640+
Assert.Equal("NewLineClass()", firstConstructorSymbol.SymbolName);
641+
Assert.Equal(8, firstConstructorSymbol.ScriptRegion.StartLineNumber);
642+
Assert.Equal(5, firstConstructorSymbol.ScriptRegion.StartColumnNumber);
643+
644+
SymbolReference firstPropertySymbol = symbolsResult.First(r => r.SymbolType == SymbolType.Property);
645+
Assert.Equal("SomePropWithDefault", firstPropertySymbol.SymbolName);
646+
Assert.Equal(15, firstPropertySymbol.ScriptRegion.StartLineNumber);
647+
Assert.Equal(5, firstPropertySymbol.ScriptRegion.StartColumnNumber);
648+
649+
SymbolReference firstMethodSymbol = symbolsResult.First(r => r.SymbolType == SymbolType.Method);
650+
Assert.Equal("MyClassMethod([MyNewLineEnum]$param1)", firstMethodSymbol.SymbolName);
651+
Assert.Equal(20, firstMethodSymbol.ScriptRegion.StartLineNumber);
652+
Assert.Equal(5, firstMethodSymbol.ScriptRegion.StartColumnNumber);
653+
654+
SymbolReference firstEnumSymbol = symbolsResult.First(r => r.SymbolType == SymbolType.Enum);
655+
Assert.Equal("MyNewLineEnum", firstEnumSymbol.SymbolName);
656+
Assert.Equal(26, firstEnumSymbol.ScriptRegion.StartLineNumber);
657+
Assert.Equal(1, firstEnumSymbol.ScriptRegion.StartColumnNumber);
658+
659+
SymbolReference firstEnumMemberSymbol = symbolsResult.First(r => r.SymbolType == SymbolType.EnumMember);
660+
Assert.Equal("First", firstEnumMemberSymbol.SymbolName);
661+
Assert.Equal(27, firstEnumMemberSymbol.ScriptRegion.StartLineNumber);
662+
Assert.Equal(5, firstEnumMemberSymbol.ScriptRegion.StartColumnNumber);
663+
}
664+
614665
[SkippableFact]
615666
public void FindsSymbolsInDSCFile()
616667
{

0 commit comments

Comments
 (0)