Skip to content

Commit ca41a26

Browse files
committed
Add tests for PatternSyntaxWrapper
1 parent 4b84cd3 commit ca41a26

4 files changed

Lines changed: 120 additions & 0 deletions

File tree

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved.
2+
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3+
4+
namespace StyleCop.Analyzers.Test.CSharp7.Lightup
5+
{
6+
using System;
7+
using Microsoft.CodeAnalysis;
8+
using Microsoft.CodeAnalysis.CSharp;
9+
using StyleCop.Analyzers.Lightup;
10+
using Xunit;
11+
12+
public class PatternSyntaxWrapperTests
13+
{
14+
[Fact]
15+
public void TestNull()
16+
{
17+
var syntaxNode = default(SyntaxNode);
18+
var patternSyntax = (PatternSyntaxWrapper)syntaxNode;
19+
Assert.Null(patternSyntax.SyntaxNode);
20+
}
21+
22+
[Fact]
23+
public void TestNonNull()
24+
{
25+
var syntaxNode = SyntaxFactory.ConstantPattern(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression));
26+
var patternSyntax = (PatternSyntaxWrapper)syntaxNode;
27+
Assert.Same(syntaxNode, patternSyntax.SyntaxNode);
28+
}
29+
30+
[Fact]
31+
public void TestIsInstance()
32+
{
33+
Assert.False(PatternSyntaxWrapper.IsInstance(null));
34+
Assert.False(PatternSyntaxWrapper.IsInstance(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression)));
35+
36+
var constantPatternSyntax = SyntaxFactory.ConstantPattern(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression));
37+
Assert.True(PatternSyntaxWrapper.IsInstance(constantPatternSyntax));
38+
39+
var declarationPatternSyntax = SyntaxFactory.DeclarationPattern(
40+
SyntaxFactory.PredefinedType(SyntaxFactory.Token(SyntaxKind.IntKeyword)),
41+
SyntaxFactory.DiscardDesignation());
42+
Assert.True(PatternSyntaxWrapper.IsInstance(declarationPatternSyntax));
43+
}
44+
45+
[Fact]
46+
public void TestConversionsNull()
47+
{
48+
var syntaxNode = default(SyntaxNode);
49+
var patternSyntax = (PatternSyntaxWrapper)syntaxNode;
50+
51+
SyntaxNode syntax = patternSyntax;
52+
Assert.Null(syntax);
53+
}
54+
55+
[Fact]
56+
public void TestConversions()
57+
{
58+
var syntaxNode = SyntaxFactory.ConstantPattern(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression));
59+
var patternSyntax = (PatternSyntaxWrapper)syntaxNode;
60+
61+
SyntaxNode syntax = patternSyntax;
62+
Assert.Same(syntaxNode, syntax);
63+
}
64+
65+
[Fact]
66+
public void TestInvalidConversion()
67+
{
68+
var syntaxNode = SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression);
69+
Assert.Throws<InvalidCastException>(() => (PatternSyntaxWrapper)syntaxNode);
70+
}
71+
}
72+
}

StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp7/StyleCop.Analyzers.Test.CSharp7.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@
201201
<Compile Include="Lightup\DeclarationPatternSyntaxWrapperTests.cs" />
202202
<Compile Include="Lightup\DestructorDeclarationSyntaxExtensionsTests.cs" />
203203
<Compile Include="Lightup\DiscardDesignationSyntaxWrapperTests.cs" />
204+
<Compile Include="Lightup\PatternSyntaxWrapperTests.cs" />
204205
<Compile Include="Properties\AssemblyInfo.cs" />
205206
</ItemGroup>
206207
<ItemGroup>
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved.
2+
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3+
4+
namespace StyleCop.Analyzers.Test.Lightup
5+
{
6+
using System;
7+
using Microsoft.CodeAnalysis;
8+
using Microsoft.CodeAnalysis.CSharp;
9+
using StyleCop.Analyzers.Lightup;
10+
using Xunit;
11+
12+
public class PatternSyntaxWrapperTests
13+
{
14+
[Fact]
15+
public void TestNull()
16+
{
17+
var syntaxNode = default(SyntaxNode);
18+
var patternSyntax = (PatternSyntaxWrapper)syntaxNode;
19+
Assert.Null(patternSyntax.SyntaxNode);
20+
}
21+
22+
[Fact]
23+
public void TestIsInstance()
24+
{
25+
Assert.False(PatternSyntaxWrapper.IsInstance(null));
26+
Assert.False(PatternSyntaxWrapper.IsInstance(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression)));
27+
}
28+
29+
[Fact]
30+
public void TestConversionsNull()
31+
{
32+
var syntaxNode = default(SyntaxNode);
33+
var patternSyntax = (PatternSyntaxWrapper)syntaxNode;
34+
35+
SyntaxNode syntax = patternSyntax;
36+
Assert.Null(syntax);
37+
}
38+
39+
[Fact]
40+
public void TestInvalidConversion()
41+
{
42+
var syntaxNode = SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression);
43+
Assert.Throws<InvalidCastException>(() => (PatternSyntaxWrapper)syntaxNode);
44+
}
45+
}
46+
}

StyleCop.Analyzers/StyleCop.Analyzers.Test/StyleCop.Analyzers.Test.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@
242242
<Compile Include="Lightup\DeclarationPatternSyntaxWrapperTests.cs" />
243243
<Compile Include="Lightup\DestructorDeclarationSyntaxExtensionsTests.cs" />
244244
<Compile Include="Lightup\DiscardDesignationSyntaxWrapperTests.cs" />
245+
<Compile Include="Lightup\PatternSyntaxWrapperTests.cs" />
245246
<Compile Include="LinqHelpers\SyntaxTriviaListEnumerableTests.cs" />
246247
<Compile Include="MaintainabilityRules\DebugMessagesUnitTestsBase.cs" />
247248
<Compile Include="MaintainabilityRules\FileMayOnlyContainTestBase.cs" />

0 commit comments

Comments
 (0)