Skip to content

Commit 4b84cd3

Browse files
committed
Add tests for DiscardDesignationSyntaxWrapper
1 parent 3a784a1 commit 4b84cd3

4 files changed

Lines changed: 145 additions & 0 deletions

File tree

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

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

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

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

0 commit comments

Comments
 (0)