Skip to content

Commit

Permalink
[GH-62] - better naming for analyzers
Browse files Browse the repository at this point in the history
  • Loading branch information
tpodolak committed Mar 10, 2019
1 parent 360d771 commit f3a29f8
Show file tree
Hide file tree
Showing 10 changed files with 106 additions and 148 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
namespace NSubstitute.Analyzers.CSharp.DiagnosticAnalyzers
{
[DiagnosticAnalyzer(LanguageNames.CSharp)]
internal class ConflictingRefOutAnalyzer : AbstractConflictingRefOutAnalyzer<SyntaxKind, InvocationExpressionSyntax, ExpressionSyntax, ElementAccessExpressionSyntax>
internal class ConflictingArgumentAssignmentsAnalyzer : AbstractConflictingArgumentAssignmentsAnalyzer<SyntaxKind, InvocationExpressionSyntax, ExpressionSyntax, ElementAccessExpressionSyntax>
{
public ConflictingRefOutAnalyzer()
public ConflictingArgumentAssignmentsAnalyzer()
: base(new DiagnosticDescriptorsProvider())
{
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@

namespace NSubstitute.Analyzers.Shared.DiagnosticAnalyzers
{
internal abstract class AbstractConflictingRefOutAnalyzer<TSyntaxKind, TInvocationExpressionSyntax, TExpressionSyntax, TIndexerExpressionSyntax> : AbstractDiagnosticAnalyzer
internal abstract class AbstractConflictingArgumentAssignmentsAnalyzer<TSyntaxKind, TInvocationExpressionSyntax, TExpressionSyntax, TIndexerExpressionSyntax> : AbstractDiagnosticAnalyzer
where TInvocationExpressionSyntax : SyntaxNode
where TExpressionSyntax : SyntaxNode
where TIndexerExpressionSyntax : SyntaxNode
where TSyntaxKind : struct
{
protected AbstractConflictingRefOutAnalyzer(IDiagnosticDescriptorsProvider diagnosticDescriptorsProvider)
protected AbstractConflictingArgumentAssignmentsAnalyzer(IDiagnosticDescriptorsProvider diagnosticDescriptorsProvider)
: base(diagnosticDescriptorsProvider)
{
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
using System.Threading.Tasks;
using NSubstitute.Analyzers.Tests.Shared.Extensibility;
using Xunit;

namespace NSubstitute.Analyzers.Tests.CSharp.DiagnosticAnalyzerTests.ConflictingRefOutAnalyzerTests
namespace NSubstitute.Analyzers.Tests.CSharp.DiagnosticAnalyzerTests.ConflictingArgumentAssignmentsAnalyzerTests
{
[CombinatoryData("AndDoes")]
public class AndDoesAsOrdinaryMethodTests : ConflictingRefOutDiagnosticVerifier
public class AndDoesAsOrdinaryMethodTests : ConflictingArgumentAssignmentsDiagnosticVerifier
{
[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "callInfo[1] = 1;", "[|callInfo[1]|] = 1;")]
[InlineData("substitute.Barr", "callInfo[1] = 1;", "[|callInfo[1]|] = 1;")]
[InlineData("substitute[Arg.Any<int>()]", "callInfo[1] = 1;", "[|callInfo[1]|] = 1;")]
public async Task ReportsDiagnostic_When_AndDoesMethod_SetsSameArgument_AsPreviousSetupMethod(string method, string call, string previousCallArgAccess, string andDoesArgAccess)
public override async Task ReportsDiagnostic_When_AndDoesMethod_SetsSameArgument_AsPreviousSetupMethod(string method, string call, string previousCallArgAccess, string andDoesArgAccess)
{
var source = $@"using System;
using NSubstitute;
Expand Down Expand Up @@ -46,11 +41,7 @@ public void Test()
await VerifyDiagnostic(source, Descriptor);
}

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "callInfo[1] = 1;")]
[InlineData("substitute.Barr", "callInfo[1] = 1;")]
[InlineData("substitute[Arg.Any<int>()]", "callInfo[1] = 1;")]
public async Task ReportsNoDiagnostics_When_AndDoesMethod_SetsDifferentArgument_AsPreviousSetupMethod(string method, string call, string andDoesArgAccess)
public override async Task ReportsNoDiagnostics_When_AndDoesMethod_SetsDifferentArgument_AsPreviousSetupMethod(string method, string call, string andDoesArgAccess)
{
var source = $@"using System;
using NSubstitute;
Expand Down Expand Up @@ -85,11 +76,7 @@ public void Test()
await VerifyNoDiagnostic(source);
}

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "var x = callInfo[1];")]
[InlineData("substitute.Barr", "var x = callInfo[1];")]
[InlineData("substitute[Arg.Any<int>()]", "var x = callInfo[1];")]
public async Task ReportsNoDiagnostics_When_AndDoesMethod_AccessSameArguments_AsPreviousSetupMethod(string method, string call, string argAccess)
public override async Task ReportsNoDiagnostics_When_AndDoesMethod_AccessSameArguments_AsPreviousSetupMethod(string method, string call, string argAccess)
{
var source = $@"using System;
using NSubstitute;
Expand Down Expand Up @@ -124,9 +111,7 @@ public void Test()
await VerifyNoDiagnostic(source);
}

[CombinatoryTheory]
[InlineData]
public async Task ReportsNoDiagnostics_When_AndDoesMethod_SetSameArguments_AsPreviousSetupMethod_SetsIndirectly(string method)
public override async Task ReportsNoDiagnostics_When_AndDoesMethod_SetSameArguments_AsPreviousSetupMethod_SetsIndirectly(string method)
{
var source = $@"using System;
using NSubstitute;
Expand Down Expand Up @@ -159,11 +144,7 @@ public void Test()
await VerifyNoDiagnostic(source);
}

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "callInfo[1] = 1;")]
[InlineData("substitute.Barr", "callInfo[1] = 1;")]
[InlineData("substitute[Arg.Any<int>()]", "callInfo[1] = 1;")]
public async Task ReportsNoDiagnostic_When_AndDoesMethod_SetArgument_AndPreviousMethod_IsNotUsedWithCallInfo(string method, string call, string andDoesArgAccess)
public override async Task ReportsNoDiagnostic_When_AndDoesMethod_SetArgument_AndPreviousMethod_IsNotUsedWithCallInfo(string method, string call, string andDoesArgAccess)
{
var source = $@"using System;
using NSubstitute;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
using System.Threading.Tasks;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;
using NSubstitute.Analyzers.CSharp;
using NSubstitute.Analyzers.CSharp.DiagnosticAnalyzers;
using NSubstitute.Analyzers.Shared;
using NSubstitute.Analyzers.Tests.Shared.DiagnosticAnalyzers;
using NSubstitute.Analyzers.Tests.Shared.Extensibility;
using Xunit;

namespace NSubstitute.Analyzers.Tests.CSharp.DiagnosticAnalyzerTests.ConflictingArgumentAssignmentsAnalyzerTests
{
public abstract class ConflictingArgumentAssignmentsDiagnosticVerifier : CSharpDiagnosticVerifier, IConflictingArgumentAssignmentsDiagnosticVerifier
{
public DiagnosticDescriptor Descriptor { get; } = DiagnosticDescriptors<DiagnosticDescriptorsProvider>.ConflictingAssignmentsToOutRefArgument;

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "callInfo[1] = 1;", "[|callInfo[1]|] = 1;")]
[InlineData("substitute.Barr", "callInfo[1] = 1;", "[|callInfo[1]|] = 1;")]
[InlineData("substitute[Arg.Any<int>()]", "callInfo[1] = 1;", "[|callInfo[1]|] = 1;")]
public abstract Task ReportsDiagnostic_When_AndDoesMethod_SetsSameArgument_AsPreviousSetupMethod(string method, string call, string previousCallArgAccess, string andDoesArgAccess);

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "callInfo[1] = 1;")]
[InlineData("substitute.Barr", "callInfo[1] = 1;")]
[InlineData("substitute[Arg.Any<int>()]", "callInfo[1] = 1;")]
public abstract Task ReportsNoDiagnostics_When_AndDoesMethod_SetsDifferentArgument_AsPreviousSetupMethod(string method, string call, string andDoesArgAccess);

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "var x = callInfo[1];")]
[InlineData("substitute.Barr", "var x = callInfo[1];")]
[InlineData("substitute[Arg.Any<int>()]", "var x = callInfo[1];")]
public abstract Task ReportsNoDiagnostics_When_AndDoesMethod_AccessSameArguments_AsPreviousSetupMethod(string method, string call, string argAccess);

[CombinatoryTheory]
[InlineData]
public abstract Task ReportsNoDiagnostics_When_AndDoesMethod_SetSameArguments_AsPreviousSetupMethod_SetsIndirectly(string method);

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "callInfo[1] = 1;")]
[InlineData("substitute.Barr", "callInfo[1] = 1;")]
[InlineData("substitute[Arg.Any<int>()]", "callInfo[1] = 1;")]
public abstract Task ReportsNoDiagnostic_When_AndDoesMethod_SetArgument_AndPreviousMethod_IsNotUsedWithCallInfo(string method, string call, string andDoesArgAccess);

protected override DiagnosticAnalyzer GetDiagnosticAnalyzer()
{
return new ConflictingArgumentAssignmentsAnalyzer();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,12 @@
using NSubstitute.Analyzers.Tests.Shared.Extensibility;
using Xunit;

namespace NSubstitute.Analyzers.Tests.CSharp.DiagnosticAnalyzerTests.ConflictingRefOutAnalyzerTests
namespace NSubstitute.Analyzers.Tests.CSharp.DiagnosticAnalyzerTests.ConflictingArgumentAssignmentsAnalyzerTests
{
[CombinatoryData("Returns", "Returns<int>", "ReturnsForAnyArgs", "ReturnsForAnyArgs<int>")]
public class ReturnsAsExtensionMethodTests : ConflictingRefOutDiagnosticVerifier
public class ReturnsAsExtensionMethodTests : ConflictingArgumentAssignmentsDiagnosticVerifier
{
[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "callInfo[1] = 1;", "[|callInfo[1]|] = 1;")]
[InlineData("substitute.Barr", "callInfo[1] = 1;", "[|callInfo[1]|] = 1;")]
[InlineData("substitute[Arg.Any<int>()]", "callInfo[1] = 1;", "[|callInfo[1]|] = 1;")]
public async Task ReportsDiagnostic_When_AndDoesMethod_SetsSameArgument_AsPreviousSetupMethod(string method, string call, string previousCallArgAccess, string andDoesArgAccess)
public override async Task ReportsDiagnostic_When_AndDoesMethod_SetsSameArgument_AsPreviousSetupMethod(string method, string call, string previousCallArgAccess, string andDoesArgAccess)
{
var source = $@"using System;
using NSubstitute;
Expand Down Expand Up @@ -48,11 +44,7 @@ public void Test()
await VerifyDiagnostic(source, Descriptor);
}

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "callInfo[1] = 1;")]
[InlineData("substitute.Barr", "callInfo[1] = 1;")]
[InlineData("substitute[Arg.Any<int>()]", "callInfo[1] = 1;")]
public async Task ReportsNoDiagnostics_When_AndDoesMethod_SetsDifferentArgument_AsPreviousSetupMethod(string method, string call, string andDoesArgAccess)
public override async Task ReportsNoDiagnostics_When_AndDoesMethod_SetsDifferentArgument_AsPreviousSetupMethod(string method, string call, string andDoesArgAccess)
{
var source = $@"using System;
using NSubstitute;
Expand Down Expand Up @@ -88,11 +80,7 @@ public void Test()
await VerifyNoDiagnostic(source);
}

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "var x = callInfo[1];")]
[InlineData("substitute.Barr", "var x = callInfo[1];")]
[InlineData("substitute[Arg.Any<int>()]", "var x = callInfo[1];")]
public async Task ReportsNoDiagnostics_When_AndDoesMethod_AccessSameArguments_AsPreviousSetupMethod(string method, string call, string argAccess)
public override async Task ReportsNoDiagnostics_When_AndDoesMethod_AccessSameArguments_AsPreviousSetupMethod(string method, string call, string argAccess)
{
var source = $@"using System;
using NSubstitute;
Expand Down Expand Up @@ -128,9 +116,7 @@ public void Test()
await VerifyNoDiagnostic(source);
}

[CombinatoryTheory]
[InlineData]
public async Task ReportsNoDiagnostics_When_AndDoesMethod_SetSameArguments_AsPreviousSetupMethod_SetsIndirectly(string method)
public override async Task ReportsNoDiagnostics_When_AndDoesMethod_SetSameArguments_AsPreviousSetupMethod_SetsIndirectly(string method)
{
var source = $@"using System;
using NSubstitute;
Expand Down Expand Up @@ -164,11 +150,7 @@ public void Test()
await VerifyNoDiagnostic(source);
}

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "callInfo[1] = 1;")]
[InlineData("substitute.Barr", "callInfo[1] = 1;")]
[InlineData("substitute[Arg.Any<int>()]", "callInfo[1] = 1;")]
public async Task ReportsNoDiagnostic_When_AndDoesMethod_SetArgument_AndPreviousMethod_IsNotUsedWithCallInfo(string method, string call, string andDoesArgAccess)
public override async Task ReportsNoDiagnostic_When_AndDoesMethod_SetArgument_AndPreviousMethod_IsNotUsedWithCallInfo(string method, string call, string andDoesArgAccess)
{
var source = $@"using System;
using NSubstitute;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,12 @@
using NSubstitute.Analyzers.Tests.Shared.Extensibility;
using Xunit;

namespace NSubstitute.Analyzers.Tests.CSharp.DiagnosticAnalyzerTests.ConflictingRefOutAnalyzerTests
namespace NSubstitute.Analyzers.Tests.CSharp.DiagnosticAnalyzerTests.ConflictingArgumentAssignmentsAnalyzerTests
{
[CombinatoryData("SubstituteExtensions.Returns", "SubstituteExtensions.Returns<int>", "SubstituteExtensions.ReturnsForAnyArgs", "SubstituteExtensions.ReturnsForAnyArgs<int>")]
public class ReturnsAsOrdinaryMethodTests : ConflictingRefOutDiagnosticVerifier
public class ReturnsAsOrdinaryMethodTests : ConflictingArgumentAssignmentsDiagnosticVerifier
{
[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "callInfo[1] = 1;", "[|callInfo[1]|] = 1;")]
[InlineData("substitute.Barr", "callInfo[1] = 1;", "[|callInfo[1]|] = 1;")]
[InlineData("substitute[Arg.Any<int>()]", "callInfo[1] = 1;", "[|callInfo[1]|] = 1;")]
public async Task ReportsDiagnostic_When_AndDoesMethod_SetsSameArgument_AsPreviousSetupMethod(string method, string call, string previousCallArgAccess, string andDoesArgAccess)
public override async Task ReportsDiagnostic_When_AndDoesMethod_SetsSameArgument_AsPreviousSetupMethod(string method, string call, string previousCallArgAccess, string andDoesArgAccess)
{
var source = $@"using System;
using NSubstitute;
Expand Down Expand Up @@ -48,11 +44,7 @@ public void Test()
await VerifyDiagnostic(source, Descriptor);
}

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "callInfo[1] = 1;")]
[InlineData("substitute.Barr", "callInfo[1] = 1;")]
[InlineData("substitute[Arg.Any<int>()]", "callInfo[1] = 1;")]
public async Task ReportsNoDiagnostics_When_AndDoesMethod_SetsDifferentArgument_AsPreviousSetupMethod(string method, string call, string andDoesArgAccess)
public override async Task ReportsNoDiagnostics_When_AndDoesMethod_SetsDifferentArgument_AsPreviousSetupMethod(string method, string call, string andDoesArgAccess)
{
var source = $@"using System;
using NSubstitute;
Expand Down Expand Up @@ -88,11 +80,7 @@ public void Test()
await VerifyNoDiagnostic(source);
}

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "var x = callInfo[1];")]
[InlineData("substitute.Barr", "var x = callInfo[1];")]
[InlineData("substitute[Arg.Any<int>()]", "var x = callInfo[1];")]
public async Task ReportsNoDiagnostics_When_AndDoesMethod_AccessSameArguments_AsPreviousSetupMethod(string method, string call, string argAccess)
public override async Task ReportsNoDiagnostics_When_AndDoesMethod_AccessSameArguments_AsPreviousSetupMethod(string method, string call, string argAccess)
{
var source = $@"using System;
using NSubstitute;
Expand Down Expand Up @@ -128,9 +116,7 @@ public void Test()
await VerifyNoDiagnostic(source);
}

[CombinatoryTheory]
[InlineData]
public async Task ReportsNoDiagnostics_When_AndDoesMethod_SetSameArguments_AsPreviousSetupMethod_SetsIndirectly(string method)
public override async Task ReportsNoDiagnostics_When_AndDoesMethod_SetSameArguments_AsPreviousSetupMethod_SetsIndirectly(string method)
{
var source = $@"using System;
using NSubstitute;
Expand Down Expand Up @@ -164,11 +150,7 @@ public void Test()
await VerifyNoDiagnostic(source);
}

[CombinatoryTheory]
[InlineData("substitute.Bar(Arg.Any<int>())", "callInfo[1] = 1;")]
[InlineData("substitute.Barr", "callInfo[1] = 1;")]
[InlineData("substitute[Arg.Any<int>()]", "callInfo[1] = 1;")]
public async Task ReportsNoDiagnostic_When_AndDoesMethod_SetArgument_AndPreviousMethod_IsNotUsedWithCallInfo(string method, string call, string andDoesArgAccess)
public override async Task ReportsNoDiagnostic_When_AndDoesMethod_SetArgument_AndPreviousMethod_IsNotUsedWithCallInfo(string method, string call, string andDoesArgAccess)
{
var source = $@"using System;
using NSubstitute;
Expand Down
Loading

0 comments on commit f3a29f8

Please sign in to comment.