Skip to content

Commit 6fc993f

Browse files
committed
Add tests for VariableDesignationSyntaxWrapper
1 parent ca41a26 commit 6fc993f

4 files changed

Lines changed: 115 additions & 0 deletions

File tree

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
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 VariableDesignationSyntaxWrapperTests
13+
{
14+
[Fact]
15+
public void TestNull()
16+
{
17+
var syntaxNode = default(SyntaxNode);
18+
var patternSyntax = (VariableDesignationSyntaxWrapper)syntaxNode;
19+
Assert.Null(patternSyntax.SyntaxNode);
20+
}
21+
22+
[Fact]
23+
public void TestNonNull()
24+
{
25+
var syntaxNode = SyntaxFactory.DiscardDesignation();
26+
var patternSyntax = (VariableDesignationSyntaxWrapper)syntaxNode;
27+
Assert.Same(syntaxNode, patternSyntax.SyntaxNode);
28+
}
29+
30+
[Fact]
31+
public void TestIsInstance()
32+
{
33+
Assert.False(VariableDesignationSyntaxWrapper.IsInstance(null));
34+
Assert.False(VariableDesignationSyntaxWrapper.IsInstance(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression)));
35+
36+
var discardDesignationSyntax = SyntaxFactory.DiscardDesignation();
37+
Assert.True(VariableDesignationSyntaxWrapper.IsInstance(discardDesignationSyntax));
38+
}
39+
40+
[Fact]
41+
public void TestConversionsNull()
42+
{
43+
var syntaxNode = default(SyntaxNode);
44+
var patternSyntax = (VariableDesignationSyntaxWrapper)syntaxNode;
45+
46+
SyntaxNode syntax = patternSyntax;
47+
Assert.Null(syntax);
48+
}
49+
50+
[Fact]
51+
public void TestConversions()
52+
{
53+
var syntaxNode = SyntaxFactory.DiscardDesignation();
54+
var patternSyntax = (VariableDesignationSyntaxWrapper)syntaxNode;
55+
56+
SyntaxNode syntax = patternSyntax;
57+
Assert.Same(syntaxNode, syntax);
58+
}
59+
60+
[Fact]
61+
public void TestInvalidConversion()
62+
{
63+
var syntaxNode = SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression);
64+
Assert.Throws<InvalidCastException>(() => (VariableDesignationSyntaxWrapper)syntaxNode);
65+
}
66+
}
67+
}

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\VariableDesignationSyntaxWrapperTests.cs" />
205206
<Compile Include="Properties\AssemblyInfo.cs" />
206207
</ItemGroup>
207208
<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 VariableDesignationSyntaxWrapperTests
13+
{
14+
[Fact]
15+
public void TestNull()
16+
{
17+
var syntaxNode = default(SyntaxNode);
18+
var patternSyntax = (VariableDesignationSyntaxWrapper)syntaxNode;
19+
Assert.Null(patternSyntax.SyntaxNode);
20+
}
21+
22+
[Fact]
23+
public void TestIsInstance()
24+
{
25+
Assert.False(VariableDesignationSyntaxWrapper.IsInstance(null));
26+
Assert.False(VariableDesignationSyntaxWrapper.IsInstance(SyntaxFactory.LiteralExpression(SyntaxKind.NullLiteralExpression)));
27+
}
28+
29+
[Fact]
30+
public void TestConversionsNull()
31+
{
32+
var syntaxNode = default(SyntaxNode);
33+
var patternSyntax = (VariableDesignationSyntaxWrapper)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>(() => (VariableDesignationSyntaxWrapper)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
@@ -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\VariableDesignationSyntaxWrapperTests.cs" />
246247
<Compile Include="LinqHelpers\SyntaxTriviaListEnumerableTests.cs" />
247248
<Compile Include="MaintainabilityRules\DebugMessagesUnitTestsBase.cs" />
248249
<Compile Include="MaintainabilityRules\FileMayOnlyContainTestBase.cs" />

0 commit comments

Comments
 (0)