Skip to content

Commit fdc0ca8

Browse files
committed
Add tests for ParenthesizedVariableDesignationSyntaxWrapper
1 parent e441f6b commit fdc0ca8

4 files changed

Lines changed: 153 additions & 0 deletions

File tree

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
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.Helpers;
10+
using StyleCop.Analyzers.Lightup;
11+
using Xunit;
12+
13+
public class ParenthesizedVariableDesignationSyntaxWrapperTests
14+
{
15+
[Fact]
16+
public void TestNull()
17+
{
18+
var syntaxNode = default(SyntaxNode);
19+
var parenthesizedVariableDesignationSyntax = (ParenthesizedVariableDesignationSyntaxWrapper)syntaxNode;
20+
Assert.Null(parenthesizedVariableDesignationSyntax.SyntaxNode);
21+
Assert.Throws<NullReferenceException>(() => parenthesizedVariableDesignationSyntax.OpenParenToken);
22+
Assert.Throws<NullReferenceException>(() => parenthesizedVariableDesignationSyntax.CloseParenToken);
23+
}
24+
25+
[Fact]
26+
public void TestProperties()
27+
{
28+
var syntaxNode = SyntaxFactory.ParenthesizedVariableDesignation();
29+
Assert.True(syntaxNode.IsKind(SyntaxKind.ParenthesizedVariableDesignation));
30+
Assert.True(syntaxNode.IsKind(SyntaxKindEx.ParenthesizedVariableDesignation));
31+
32+
var parenthesizedVariableDesignationSyntax = (ParenthesizedVariableDesignationSyntaxWrapper)syntaxNode;
33+
Assert.Same(syntaxNode, parenthesizedVariableDesignationSyntax.SyntaxNode);
34+
Assert.True(syntaxNode.OpenParenToken.IsEquivalentTo(parenthesizedVariableDesignationSyntax.OpenParenToken));
35+
36+
parenthesizedVariableDesignationSyntax = parenthesizedVariableDesignationSyntax.WithOpenParenToken(SpacingExtensions.WithoutTrivia(SyntaxFactory.Token(SyntaxKind.OpenParenToken)));
37+
Assert.NotNull(parenthesizedVariableDesignationSyntax.SyntaxNode);
38+
Assert.NotSame(syntaxNode, parenthesizedVariableDesignationSyntax.SyntaxNode);
39+
Assert.False(syntaxNode.OpenParenToken.IsEquivalentTo(parenthesizedVariableDesignationSyntax.OpenParenToken));
40+
Assert.True(syntaxNode.CloseParenToken.IsEquivalentTo(parenthesizedVariableDesignationSyntax.CloseParenToken));
41+
42+
parenthesizedVariableDesignationSyntax = parenthesizedVariableDesignationSyntax.WithCloseParenToken(SpacingExtensions.WithoutTrivia(SyntaxFactory.Token(SyntaxKind.CloseParenToken)));
43+
Assert.NotNull(parenthesizedVariableDesignationSyntax.SyntaxNode);
44+
Assert.False(syntaxNode.OpenParenToken.IsEquivalentTo(parenthesizedVariableDesignationSyntax.OpenParenToken));
45+
Assert.False(syntaxNode.CloseParenToken.IsEquivalentTo(parenthesizedVariableDesignationSyntax.CloseParenToken));
46+
}
47+
48+
[Fact]
49+
public void TestIsInstance()
50+
{
51+
Assert.False(ParenthesizedVariableDesignationSyntaxWrapper.IsInstance(null));
52+
Assert.False(ParenthesizedVariableDesignationSyntaxWrapper.IsInstance(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression)));
53+
54+
var syntaxNode = SyntaxFactory.ParenthesizedVariableDesignation();
55+
Assert.True(ParenthesizedVariableDesignationSyntaxWrapper.IsInstance(syntaxNode));
56+
}
57+
58+
[Fact]
59+
public void TestConversionsNull()
60+
{
61+
var syntaxNode = default(SyntaxNode);
62+
var parenthesizedVariableDesignationSyntax = (ParenthesizedVariableDesignationSyntaxWrapper)syntaxNode;
63+
64+
VariableDesignationSyntaxWrapper variableDesignationSyntax = parenthesizedVariableDesignationSyntax;
65+
Assert.Null(variableDesignationSyntax.SyntaxNode);
66+
67+
parenthesizedVariableDesignationSyntax = (ParenthesizedVariableDesignationSyntaxWrapper)variableDesignationSyntax;
68+
Assert.Null(parenthesizedVariableDesignationSyntax.SyntaxNode);
69+
70+
SyntaxNode syntax = parenthesizedVariableDesignationSyntax;
71+
Assert.Null(syntax);
72+
}
73+
74+
[Fact]
75+
public void TestConversions()
76+
{
77+
var syntaxNode = SyntaxFactory.ParenthesizedVariableDesignation();
78+
var parenthesizedVariableDesignationSyntax = (ParenthesizedVariableDesignationSyntaxWrapper)syntaxNode;
79+
80+
VariableDesignationSyntaxWrapper variableDesignationSyntax = parenthesizedVariableDesignationSyntax;
81+
Assert.Same(syntaxNode, variableDesignationSyntax.SyntaxNode);
82+
83+
parenthesizedVariableDesignationSyntax = (ParenthesizedVariableDesignationSyntaxWrapper)variableDesignationSyntax;
84+
Assert.Same(syntaxNode, parenthesizedVariableDesignationSyntax.SyntaxNode);
85+
86+
SyntaxNode syntax = parenthesizedVariableDesignationSyntax;
87+
Assert.Same(syntaxNode, syntax);
88+
}
89+
90+
[Fact]
91+
public void TestInvalidConversion()
92+
{
93+
var syntaxNode = SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression);
94+
Assert.Throws<InvalidCastException>(() => (ParenthesizedVariableDesignationSyntaxWrapper)syntaxNode);
95+
}
96+
}
97+
}

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\ParenthesizedVariableDesignationSyntaxWrapperTests.cs" />
204205
<Compile Include="Lightup\PatternSyntaxWrapperTests.cs" />
205206
<Compile Include="Lightup\SingleVariableDesignationSyntaxWrapperTests.cs" />
206207
<Compile Include="Lightup\VariableDesignationSyntaxWrapperTests.cs" />
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
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 ParenthesizedVariableDesignationSyntaxWrapperTests
13+
{
14+
[Fact]
15+
public void TestNull()
16+
{
17+
var syntaxNode = default(SyntaxNode);
18+
var parenthesizedVariableDesignationSyntax = (ParenthesizedVariableDesignationSyntaxWrapper)syntaxNode;
19+
Assert.Null(parenthesizedVariableDesignationSyntax.SyntaxNode);
20+
Assert.Throws<NullReferenceException>(() => parenthesizedVariableDesignationSyntax.OpenParenToken);
21+
Assert.Throws<NullReferenceException>(() => parenthesizedVariableDesignationSyntax.CloseParenToken);
22+
}
23+
24+
[Fact]
25+
public void TestIsInstance()
26+
{
27+
Assert.False(ParenthesizedVariableDesignationSyntaxWrapper.IsInstance(null));
28+
Assert.False(ParenthesizedVariableDesignationSyntaxWrapper.IsInstance(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression)));
29+
}
30+
31+
[Fact]
32+
public void TestConversionsNull()
33+
{
34+
var syntaxNode = default(SyntaxNode);
35+
var parenthesizedVariableDesignationSyntax = (ParenthesizedVariableDesignationSyntaxWrapper)syntaxNode;
36+
37+
VariableDesignationSyntaxWrapper variableDesignationSyntax = parenthesizedVariableDesignationSyntax;
38+
Assert.Null(variableDesignationSyntax.SyntaxNode);
39+
40+
parenthesizedVariableDesignationSyntax = (ParenthesizedVariableDesignationSyntaxWrapper)variableDesignationSyntax;
41+
Assert.Null(parenthesizedVariableDesignationSyntax.SyntaxNode);
42+
43+
SyntaxNode syntax = parenthesizedVariableDesignationSyntax;
44+
Assert.Null(syntax);
45+
}
46+
47+
[Fact]
48+
public void TestInvalidConversion()
49+
{
50+
var syntaxNode = SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression);
51+
Assert.Throws<InvalidCastException>(() => (ParenthesizedVariableDesignationSyntaxWrapper)syntaxNode);
52+
}
53+
}
54+
}

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\ParenthesizedVariableDesignationSyntaxWrapperTests.cs" />
245246
<Compile Include="Lightup\PatternSyntaxWrapperTests.cs" />
246247
<Compile Include="Lightup\SingleVariableDesignationSyntaxWrapperTests.cs" />
247248
<Compile Include="Lightup\VariableDesignationSyntaxWrapperTests.cs" />

0 commit comments

Comments
 (0)