Skip to content

Commit 4d9ec81

Browse files
committed
Add tests and Requires class to improve coverage in AccessLevelHelper
1 parent 786abd3 commit 4d9ec81

4 files changed

Lines changed: 61 additions & 99 deletions

File tree

StyleCop.Analyzers/StyleCop.Analyzers.Test/HelperTests/AccessLevelHelperTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,19 @@
33

44
namespace StyleCop.Analyzers.Test.HelperTests
55
{
6+
using System;
67
using Analyzers.Helpers;
78
using Microsoft.CodeAnalysis;
89
using Xunit;
910

1011
public class AccessLevelHelperTests
1112
{
13+
[Fact]
14+
public void TestNotSpecifiedToAccessibility()
15+
{
16+
Assert.Throws<ArgumentException>(() => AccessLevel.NotSpecified.ToAccessibility());
17+
}
18+
1219
[Fact]
1320
public void TestCombineEffectiveAccessibility()
1421
{

StyleCop.Analyzers/StyleCop.Analyzers/Helpers/AccessLevelHelper.cs

Lines changed: 22 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,8 @@ internal static Accessibility ToAccessibility(this AccessLevel accessLevel)
123123

124124
internal static Accessibility GetDeclaredAccessibility(this BaseTypeDeclarationSyntax syntax, SemanticModel semanticModel, CancellationToken cancellationToken)
125125
{
126-
if (syntax == null)
127-
{
128-
throw new ArgumentNullException(nameof(syntax));
129-
}
130-
131-
if (semanticModel == null)
132-
{
133-
throw new ArgumentNullException(nameof(semanticModel));
134-
}
126+
Requires.NotNull(syntax, nameof(syntax));
127+
Requires.NotNull(semanticModel, nameof(semanticModel));
135128

136129
AccessLevel accessLevel = GetAccessLevel(syntax.Modifiers);
137130
if (accessLevel != AccessLevel.NotSpecified)
@@ -151,15 +144,8 @@ internal static Accessibility GetDeclaredAccessibility(this BaseTypeDeclarationS
151144

152145
internal static Accessibility GetDeclaredAccessibility(this BaseMethodDeclarationSyntax syntax, SemanticModel semanticModel, CancellationToken cancellationToken)
153146
{
154-
if (syntax == null)
155-
{
156-
throw new ArgumentNullException(nameof(syntax));
157-
}
158-
159-
if (semanticModel == null)
160-
{
161-
throw new ArgumentNullException(nameof(semanticModel));
162-
}
147+
Requires.NotNull(syntax, nameof(syntax));
148+
Requires.NotNull(semanticModel, nameof(semanticModel));
163149

164150
AccessLevel accessLevel = GetAccessLevel(syntax.Modifiers);
165151
if (accessLevel != AccessLevel.NotSpecified)
@@ -196,15 +182,8 @@ internal static Accessibility GetDeclaredAccessibility(this BaseMethodDeclaratio
196182

197183
internal static Accessibility GetDeclaredAccessibility(this BasePropertyDeclarationSyntax syntax, SemanticModel semanticModel, CancellationToken cancellationToken)
198184
{
199-
if (syntax == null)
200-
{
201-
throw new ArgumentNullException(nameof(syntax));
202-
}
203-
204-
if (semanticModel == null)
205-
{
206-
throw new ArgumentNullException(nameof(semanticModel));
207-
}
185+
Requires.NotNull(syntax, nameof(syntax));
186+
Requires.NotNull(semanticModel, nameof(semanticModel));
208187

209188
AccessLevel accessLevel = GetAccessLevel(syntax.Modifiers);
210189
if (accessLevel != AccessLevel.NotSpecified)
@@ -257,15 +236,8 @@ internal static Accessibility GetDeclaredAccessibility(this BasePropertyDeclarat
257236

258237
internal static Accessibility GetDeclaredAccessibility(this BaseFieldDeclarationSyntax syntax, SemanticModel semanticModel, CancellationToken cancellationToken)
259238
{
260-
if (syntax == null)
261-
{
262-
throw new ArgumentNullException(nameof(syntax));
263-
}
264-
265-
if (semanticModel == null)
266-
{
267-
throw new ArgumentNullException(nameof(semanticModel));
268-
}
239+
Requires.NotNull(syntax, nameof(syntax));
240+
Requires.NotNull(semanticModel, nameof(semanticModel));
269241

270242
AccessLevel accessLevel = GetAccessLevel(syntax.Modifiers);
271243
if (accessLevel != AccessLevel.NotSpecified)
@@ -295,15 +267,8 @@ internal static Accessibility GetDeclaredAccessibility(this EnumMemberDeclaratio
295267

296268
internal static Accessibility GetDeclaredAccessibility(this DelegateDeclarationSyntax syntax, SemanticModel semanticModel, CancellationToken cancellationToken)
297269
{
298-
if (syntax == null)
299-
{
300-
throw new ArgumentNullException(nameof(syntax));
301-
}
302-
303-
if (semanticModel == null)
304-
{
305-
throw new ArgumentNullException(nameof(semanticModel));
306-
}
270+
Requires.NotNull(syntax, nameof(syntax));
271+
Requires.NotNull(semanticModel, nameof(semanticModel));
307272

308273
AccessLevel accessLevel = GetAccessLevel(syntax.Modifiers);
309274
if (accessLevel != AccessLevel.NotSpecified)
@@ -317,15 +282,8 @@ internal static Accessibility GetDeclaredAccessibility(this DelegateDeclarationS
317282

318283
internal static Accessibility GetEffectiveAccessibility(this BaseTypeDeclarationSyntax syntax, SemanticModel semanticModel, CancellationToken cancellationToken)
319284
{
320-
if (syntax == null)
321-
{
322-
throw new ArgumentNullException(nameof(syntax));
323-
}
324-
325-
if (semanticModel == null)
326-
{
327-
throw new ArgumentNullException(nameof(semanticModel));
328-
}
285+
Requires.NotNull(syntax, nameof(syntax));
286+
Requires.NotNull(semanticModel, nameof(semanticModel));
329287

330288
Accessibility declaredAccessibility = syntax.GetDeclaredAccessibility(semanticModel, cancellationToken);
331289
if (declaredAccessibility <= Accessibility.Private)
@@ -345,15 +303,8 @@ internal static Accessibility GetEffectiveAccessibility(this BaseTypeDeclaration
345303

346304
internal static Accessibility GetEffectiveAccessibility(this BaseMethodDeclarationSyntax syntax, SemanticModel semanticModel, CancellationToken cancellationToken)
347305
{
348-
if (syntax == null)
349-
{
350-
throw new ArgumentNullException(nameof(syntax));
351-
}
352-
353-
if (semanticModel == null)
354-
{
355-
throw new ArgumentNullException(nameof(semanticModel));
356-
}
306+
Requires.NotNull(syntax, nameof(syntax));
307+
Requires.NotNull(semanticModel, nameof(semanticModel));
357308

358309
Accessibility declaredAccessibility = syntax.GetDeclaredAccessibility(semanticModel, cancellationToken);
359310
if (declaredAccessibility <= Accessibility.Private)
@@ -373,15 +324,8 @@ internal static Accessibility GetEffectiveAccessibility(this BaseMethodDeclarati
373324

374325
internal static Accessibility GetEffectiveAccessibility(this BasePropertyDeclarationSyntax syntax, SemanticModel semanticModel, CancellationToken cancellationToken)
375326
{
376-
if (syntax == null)
377-
{
378-
throw new ArgumentNullException(nameof(syntax));
379-
}
380-
381-
if (semanticModel == null)
382-
{
383-
throw new ArgumentNullException(nameof(semanticModel));
384-
}
327+
Requires.NotNull(syntax, nameof(syntax));
328+
Requires.NotNull(semanticModel, nameof(semanticModel));
385329

386330
Accessibility declaredAccessibility = syntax.GetDeclaredAccessibility(semanticModel, cancellationToken);
387331
if (declaredAccessibility <= Accessibility.Private)
@@ -401,15 +345,8 @@ internal static Accessibility GetEffectiveAccessibility(this BasePropertyDeclara
401345

402346
internal static Accessibility GetEffectiveAccessibility(this BaseFieldDeclarationSyntax syntax, SemanticModel semanticModel, CancellationToken cancellationToken)
403347
{
404-
if (syntax == null)
405-
{
406-
throw new ArgumentNullException(nameof(syntax));
407-
}
408-
409-
if (semanticModel == null)
410-
{
411-
throw new ArgumentNullException(nameof(semanticModel));
412-
}
348+
Requires.NotNull(syntax, nameof(syntax));
349+
Requires.NotNull(semanticModel, nameof(semanticModel));
413350

414351
Accessibility declaredAccessibility = syntax.GetDeclaredAccessibility(semanticModel, cancellationToken);
415352
if (declaredAccessibility <= Accessibility.Private)
@@ -429,15 +366,8 @@ internal static Accessibility GetEffectiveAccessibility(this BaseFieldDeclaratio
429366

430367
internal static Accessibility GetEffectiveAccessibility(this EnumMemberDeclarationSyntax syntax, SemanticModel semanticModel, CancellationToken cancellationToken)
431368
{
432-
if (syntax == null)
433-
{
434-
throw new ArgumentNullException(nameof(syntax));
435-
}
436-
437-
if (semanticModel == null)
438-
{
439-
throw new ArgumentNullException(nameof(semanticModel));
440-
}
369+
Requires.NotNull(syntax, nameof(syntax));
370+
Requires.NotNull(semanticModel, nameof(semanticModel));
441371

442372
Accessibility declaredAccessibility = Accessibility.Public;
443373

@@ -448,15 +378,8 @@ internal static Accessibility GetEffectiveAccessibility(this EnumMemberDeclarati
448378

449379
internal static Accessibility GetEffectiveAccessibility(this DelegateDeclarationSyntax syntax, SemanticModel semanticModel, CancellationToken cancellationToken)
450380
{
451-
if (syntax == null)
452-
{
453-
throw new ArgumentNullException(nameof(syntax));
454-
}
455-
456-
if (semanticModel == null)
457-
{
458-
throw new ArgumentNullException(nameof(semanticModel));
459-
}
381+
Requires.NotNull(syntax, nameof(syntax));
382+
Requires.NotNull(semanticModel, nameof(semanticModel));
460383

461384
Accessibility declaredAccessibility = syntax.GetDeclaredAccessibility(semanticModel, cancellationToken);
462385
if (declaredAccessibility <= Accessibility.Private)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
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.Helpers
5+
{
6+
using System;
7+
8+
/// <summary>
9+
/// This class contains helper methods for argument validation.
10+
/// </summary>
11+
internal static class Requires
12+
{
13+
/// <summary>
14+
/// Validates that an argument is not null.
15+
/// </summary>
16+
/// <typeparam name="T">The parameter type.</typeparam>
17+
/// <param name="argument">The argument value.</param>
18+
/// <param name="parameterName">The name of the parameter.</param>
19+
/// <exception cref="ArgumentNullException">
20+
/// If <paramref name="argument"/> is <see langword="null"/>.
21+
/// </exception>
22+
public static void NotNull<T>(T argument, string parameterName)
23+
where T : class
24+
{
25+
if (argument == null)
26+
{
27+
throw new ArgumentNullException(parameterName);
28+
}
29+
}
30+
}
31+
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@
133133
<Compile Include="Helpers\NamedTypeHelpers.cs" />
134134
<Compile Include="Helpers\NameSyntaxHelpers.cs" />
135135
<Compile Include="Helpers\RenameHelper.cs" />
136+
<Compile Include="Helpers\Requires.cs" />
136137
<Compile Include="Helpers\SpecializedTasks.cs" />
137138
<Compile Include="Helpers\SyntaxTreeHelpers.cs" />
138139
<Compile Include="Helpers\TokenHelpers.cs" />

0 commit comments

Comments
 (0)