Skip to content

Commit e441f6b

Browse files
committed
Add tests for SingleVariableDesignationSyntaxWrapper
1 parent e6a3b9a commit e441f6b

4 files changed

Lines changed: 148 additions & 0 deletions

File tree

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
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 SingleVariableDesignationSyntaxWrapperTests
14+
{
15+
[Fact]
16+
public void TestNull()
17+
{
18+
var syntaxNode = default(SyntaxNode);
19+
var singleVariableDesignationSyntax = (SingleVariableDesignationSyntaxWrapper)syntaxNode;
20+
Assert.Null(singleVariableDesignationSyntax.SyntaxNode);
21+
Assert.Throws<NullReferenceException>(() => singleVariableDesignationSyntax.Identifier);
22+
Assert.Throws<NullReferenceException>(() => singleVariableDesignationSyntax.WithIdentifier(SyntaxFactory.Identifier("Anything")));
23+
}
24+
25+
[Fact]
26+
public void TestIdentifier()
27+
{
28+
var syntaxNode = SyntaxFactory.SingleVariableDesignation(SyntaxFactory.Identifier("Anything"));
29+
Assert.True(syntaxNode.IsKind(SyntaxKind.SingleVariableDesignation));
30+
Assert.True(syntaxNode.IsKind(SyntaxKindEx.SingleVariableDesignation));
31+
32+
var singleVariableDesignationSyntax = (SingleVariableDesignationSyntaxWrapper)syntaxNode;
33+
Assert.Same(syntaxNode, singleVariableDesignationSyntax.SyntaxNode);
34+
Assert.Equal(syntaxNode.Identifier, singleVariableDesignationSyntax.Identifier);
35+
36+
singleVariableDesignationSyntax = singleVariableDesignationSyntax.WithIdentifier(SyntaxFactory.Identifier("AnythingElse"));
37+
Assert.NotNull(singleVariableDesignationSyntax.SyntaxNode);
38+
Assert.NotSame(syntaxNode, singleVariableDesignationSyntax.SyntaxNode);
39+
Assert.False(syntaxNode.Identifier.IsEquivalentTo(singleVariableDesignationSyntax.Identifier));
40+
Assert.Equal("AnythingElse", singleVariableDesignationSyntax.Identifier.ValueText);
41+
}
42+
43+
[Fact]
44+
public void TestIsInstance()
45+
{
46+
Assert.False(SingleVariableDesignationSyntaxWrapper.IsInstance(null));
47+
Assert.False(SingleVariableDesignationSyntaxWrapper.IsInstance(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression)));
48+
49+
var syntaxNode = SyntaxFactory.SingleVariableDesignation(SyntaxFactory.Identifier("Anything"));
50+
Assert.True(SingleVariableDesignationSyntaxWrapper.IsInstance(syntaxNode));
51+
}
52+
53+
[Fact]
54+
public void TestConversionsNull()
55+
{
56+
var syntaxNode = default(SyntaxNode);
57+
var singleVariableDesignationSyntax = (SingleVariableDesignationSyntaxWrapper)syntaxNode;
58+
59+
VariableDesignationSyntaxWrapper variableDesignationSyntax = singleVariableDesignationSyntax;
60+
Assert.Null(variableDesignationSyntax.SyntaxNode);
61+
62+
singleVariableDesignationSyntax = (SingleVariableDesignationSyntaxWrapper)variableDesignationSyntax;
63+
Assert.Null(singleVariableDesignationSyntax.SyntaxNode);
64+
65+
SyntaxNode syntax = singleVariableDesignationSyntax;
66+
Assert.Null(syntax);
67+
}
68+
69+
[Fact]
70+
public void TestConversions()
71+
{
72+
var syntaxNode = SyntaxFactory.SingleVariableDesignation(SyntaxFactory.Identifier("Anything"));
73+
var singleVariableDesignationSyntax = (SingleVariableDesignationSyntaxWrapper)syntaxNode;
74+
75+
VariableDesignationSyntaxWrapper variableDesignationSyntax = singleVariableDesignationSyntax;
76+
Assert.Same(syntaxNode, variableDesignationSyntax.SyntaxNode);
77+
78+
singleVariableDesignationSyntax = (SingleVariableDesignationSyntaxWrapper)variableDesignationSyntax;
79+
Assert.Same(syntaxNode, singleVariableDesignationSyntax.SyntaxNode);
80+
81+
SyntaxNode syntax = singleVariableDesignationSyntax;
82+
Assert.Same(syntaxNode, syntax);
83+
}
84+
85+
[Fact]
86+
public void TestInvalidConversion()
87+
{
88+
var syntaxNode = SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression);
89+
Assert.Throws<InvalidCastException>(() => (SingleVariableDesignationSyntaxWrapper)syntaxNode);
90+
}
91+
}
92+
}

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
@@ -202,6 +202,7 @@
202202
<Compile Include="Lightup\DestructorDeclarationSyntaxExtensionsTests.cs" />
203203
<Compile Include="Lightup\DiscardDesignationSyntaxWrapperTests.cs" />
204204
<Compile Include="Lightup\PatternSyntaxWrapperTests.cs" />
205+
<Compile Include="Lightup\SingleVariableDesignationSyntaxWrapperTests.cs" />
205206
<Compile Include="Lightup\VariableDesignationSyntaxWrapperTests.cs" />
206207
<Compile Include="Properties\AssemblyInfo.cs" />
207208
</ItemGroup>
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 SingleVariableDesignationSyntaxWrapperTests
13+
{
14+
[Fact]
15+
public void TestNull()
16+
{
17+
var syntaxNode = default(SyntaxNode);
18+
var singleVariableDesignationSyntax = (SingleVariableDesignationSyntaxWrapper)syntaxNode;
19+
Assert.Null(singleVariableDesignationSyntax.SyntaxNode);
20+
Assert.Throws<NullReferenceException>(() => singleVariableDesignationSyntax.Identifier);
21+
Assert.Throws<NullReferenceException>(() => singleVariableDesignationSyntax.WithIdentifier(SyntaxFactory.Identifier("Anything")));
22+
}
23+
24+
[Fact]
25+
public void TestIsInstance()
26+
{
27+
Assert.False(SingleVariableDesignationSyntaxWrapper.IsInstance(null));
28+
Assert.False(SingleVariableDesignationSyntaxWrapper.IsInstance(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression)));
29+
}
30+
31+
[Fact]
32+
public void TestConversionsNull()
33+
{
34+
var syntaxNode = default(SyntaxNode);
35+
var singleVariableDesignationSyntax = (SingleVariableDesignationSyntaxWrapper)syntaxNode;
36+
37+
VariableDesignationSyntaxWrapper variableDesignationSyntax = singleVariableDesignationSyntax;
38+
Assert.Null(variableDesignationSyntax.SyntaxNode);
39+
40+
singleVariableDesignationSyntax = (SingleVariableDesignationSyntaxWrapper)variableDesignationSyntax;
41+
Assert.Null(singleVariableDesignationSyntax.SyntaxNode);
42+
43+
SyntaxNode syntax = singleVariableDesignationSyntax;
44+
Assert.Null(syntax);
45+
}
46+
47+
[Fact]
48+
public void TestInvalidConversion()
49+
{
50+
var syntaxNode = SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression);
51+
Assert.Throws<InvalidCastException>(() => (SingleVariableDesignationSyntaxWrapper)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
@@ -243,6 +243,7 @@
243243
<Compile Include="Lightup\DestructorDeclarationSyntaxExtensionsTests.cs" />
244244
<Compile Include="Lightup\DiscardDesignationSyntaxWrapperTests.cs" />
245245
<Compile Include="Lightup\PatternSyntaxWrapperTests.cs" />
246+
<Compile Include="Lightup\SingleVariableDesignationSyntaxWrapperTests.cs" />
246247
<Compile Include="Lightup\VariableDesignationSyntaxWrapperTests.cs" />
247248
<Compile Include="LinqHelpers\SyntaxTriviaListEnumerableTests.cs" />
248249
<Compile Include="MaintainabilityRules\DebugMessagesUnitTestsBase.cs" />

0 commit comments

Comments
 (0)