Skip to content

Commit

Permalink
[GH-35] - fixing tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tpodolak committed Aug 24, 2019
1 parent 7c82bdb commit fe16f24
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 27 deletions.
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"sdk": {
"version": "2.2.203"
"version": "2.2.300"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,18 @@
namespace NSubstitute.Analyzers.CSharp.DiagnosticAnalyzers
{
[DiagnosticAnalyzer(LanguageNames.CSharp)]
internal class ArgumentMatcherAnalyzer : AbstractArgumentMatcherAnalyzer<SyntaxKind, InvocationExpressionSyntax, MemberAccessExpressionSyntax, ArgumentSyntax>
internal sealed class ArgumentMatcherAnalyzer : AbstractArgumentMatcherAnalyzer<SyntaxKind, InvocationExpressionSyntax, MemberAccessExpressionSyntax, ArgumentSyntax>
{
private readonly ISubstitutionNodeFinder<InvocationExpressionSyntax> _substitutionNodeFinder = new SubstitutionNodeFinder();

public ArgumentMatcherAnalyzer()
: base(new DiagnosticDescriptorsProvider())
: base(CSharp.DiagnosticDescriptorsProvider.Instance)
{
}

protected override SyntaxKind InvocationExpressionKind { get; } = SyntaxKind.InvocationExpression;

protected override AbstractArgumentMatcherCompilationAnalyzer<InvocationExpressionSyntax, MemberAccessExpressionSyntax, ArgumentSyntax> CreateArgumentMatcherCompilationAnalyzer()
{
return new ArgumentMatcherCompilationAnalyzer(_substitutionNodeFinder, DiagnosticDescriptorsProvider);
return new ArgumentMatcherCompilationAnalyzer(SubstitutionNodeFinder.Instance, DiagnosticDescriptorsProvider);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

namespace NSubstitute.Analyzers.CSharp.DiagnosticAnalyzers
{
internal class ArgumentMatcherCompilationAnalyzer : AbstractArgumentMatcherCompilationAnalyzer<InvocationExpressionSyntax, MemberAccessExpressionSyntax, ArgumentSyntax>
internal sealed class ArgumentMatcherCompilationAnalyzer : AbstractArgumentMatcherCompilationAnalyzer<InvocationExpressionSyntax, MemberAccessExpressionSyntax, ArgumentSyntax>
{
private static ImmutableArray<ImmutableArray<int>> AncestorPaths { get; } = ImmutableArray.Create(
ImmutableArray.Create(
Expand All @@ -35,7 +35,7 @@ protected override SyntaxNode GetOperationSyntax(SyntaxNodeAnalysisContext synta
return operation?.Parent?.Syntax;
}

protected override List<SyntaxNode> TryGetArgumentExpressions(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext, SyntaxNode syntaxNode)
protected override IEnumerable<SyntaxNode> TryGetArgumentExpressions(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext, SyntaxNode syntaxNode)
{
SeparatedSyntaxList<ArgumentSyntax> argumentList = default;
switch (syntaxNode)
Expand All @@ -48,7 +48,7 @@ protected override List<SyntaxNode> TryGetArgumentExpressions(SyntaxNodeAnalysis
break;
}

return argumentList.Select<ArgumentSyntax, SyntaxNode>(node => node.Expression).ToList();
return argumentList.Select<ArgumentSyntax, SyntaxNode>(node => node.Expression);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System;
using System.Collections.Immutable;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Diagnostics;
Expand All @@ -10,28 +11,33 @@ internal abstract class AbstractArgumentMatcherAnalyzer<TSyntaxKind, TInvocation
where TMemberAccessExpressionSyntax : SyntaxNode
where TArgumentSyntax : SyntaxNode
{
private readonly Action<CompilationStartAnalysisContext> _compilationStartAction;

protected abstract TSyntaxKind InvocationExpressionKind { get; }

protected AbstractArgumentMatcherAnalyzer(IDiagnosticDescriptorsProvider diagnosticDescriptorsProvider)
: base(diagnosticDescriptorsProvider)
{
SupportedDiagnostics = ImmutableArray.Create(DiagnosticDescriptorsProvider.ArgumentMatcherUsedWithoutSpecifyingCall);
_compilationStartAction = AnalyzeCompilation;
}

public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; }

protected override void InitializeAnalyzer(AnalysisContext context)
{
context.RegisterCompilationStartAction(compilationContext =>
{
var compilationAnalyzer = CreateArgumentMatcherCompilationAnalyzer();

compilationContext.RegisterSyntaxNodeAction(compilationAnalyzer.BeginAnalyzeArgMatchers, InvocationExpressionKind);

compilationContext.RegisterCompilationEndAction(compilationAnalyzer.FinishAnalyzeArgMatchers);
});
context.RegisterCompilationStartAction(_compilationStartAction);
}

protected abstract AbstractArgumentMatcherCompilationAnalyzer<TInvocationExpressionSyntax, TMemberAccessExpressionSyntax, TArgumentSyntax> CreateArgumentMatcherCompilationAnalyzer();

private void AnalyzeCompilation(CompilationStartAnalysisContext compilationContext)
{
var compilationAnalyzer = CreateArgumentMatcherCompilationAnalyzer();

compilationContext.RegisterSyntaxNodeAction(compilationAnalyzer.BeginAnalyzeArgMatchers, InvocationExpressionKind);

compilationContext.RegisterCompilationEndAction(compilationAnalyzer.FinishAnalyzeArgMatchers);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public void FinishAnalyzeArgMatchers(CompilationAnalysisContext compilationAnaly

protected abstract SyntaxNode GetOperationSyntax(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext, TArgumentSyntax argumentExpression);

protected abstract List<SyntaxNode> TryGetArgumentExpressions(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext, SyntaxNode syntaxNode);
protected abstract IEnumerable<SyntaxNode> TryGetArgumentExpressions(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext, SyntaxNode syntaxNode);

private bool IsFollowedBySetupInvocation(SyntaxNodeAnalysisContext syntaxNodeContext, SyntaxNode invocationExpressionSyntax)
{
Expand Down Expand Up @@ -119,7 +119,7 @@ private void BeginAnalyzeWhenLikeMethod(SyntaxNodeAnalysisContext syntaxNodeCont
private void BeginAnalyzeReceivedInOrderMethod(SyntaxNodeAnalysisContext syntaxNodeContext, TInvocationExpressionSyntax invocationExpression)
{
foreach (var syntaxNode in _substitutionNodeFinder
.FindForReceivedInOrderExpression(syntaxNodeContext, invocationExpression).ToList())
.FindForReceivedInOrderExpression(syntaxNodeContext, invocationExpression))
{
var symbol = syntaxNodeContext.SemanticModel.GetSymbolInfo(syntaxNode).Symbol;
var actualNode = syntaxNode is TMemberAccessExpressionSyntax && symbol is IMethodSymbol _
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,18 @@
namespace NSubstitute.Analyzers.VisualBasic.DiagnosticAnalyzers
{
[DiagnosticAnalyzer(LanguageNames.VisualBasic)]
internal class ArgumentMatcherAnalyzer : AbstractArgumentMatcherAnalyzer<SyntaxKind, InvocationExpressionSyntax, MemberAccessExpressionSyntax, ArgumentSyntax>
internal sealed class ArgumentMatcherAnalyzer : AbstractArgumentMatcherAnalyzer<SyntaxKind, InvocationExpressionSyntax, MemberAccessExpressionSyntax, ArgumentSyntax>
{
private readonly ISubstitutionNodeFinder<InvocationExpressionSyntax> _substitutionNodeFinder = new SubstitutionNodeFinder();

public ArgumentMatcherAnalyzer()
: base(new DiagnosticDescriptorsProvider())
: base(VisualBasic.DiagnosticDescriptorsProvider.Instance)
{
}

protected override SyntaxKind InvocationExpressionKind { get; } = SyntaxKind.InvocationExpression;

protected override AbstractArgumentMatcherCompilationAnalyzer<InvocationExpressionSyntax, MemberAccessExpressionSyntax, ArgumentSyntax> CreateArgumentMatcherCompilationAnalyzer()
{
return new ArgumentMatcherCompilationAnalyzer(_substitutionNodeFinder, DiagnosticDescriptorsProvider);
return new ArgumentMatcherCompilationAnalyzer(SubstitutionNodeFinder.Instance, DiagnosticDescriptorsProvider);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

namespace NSubstitute.Analyzers.VisualBasic.DiagnosticAnalyzers
{
internal class ArgumentMatcherCompilationAnalyzer : AbstractArgumentMatcherCompilationAnalyzer<InvocationExpressionSyntax, MemberAccessExpressionSyntax, ArgumentSyntax>
internal sealed class ArgumentMatcherCompilationAnalyzer : AbstractArgumentMatcherCompilationAnalyzer<InvocationExpressionSyntax, MemberAccessExpressionSyntax, ArgumentSyntax>
{
private static ImmutableArray<ImmutableArray<int>> AncestorPaths { get; } = ImmutableArray.Create(
ImmutableArray.Create(
Expand All @@ -31,7 +31,8 @@ protected override SyntaxNode GetOperationSyntax(SyntaxNodeAnalysisContext synta
return operation?.Parent?.Syntax;
}

protected override List<SyntaxNode> TryGetArgumentExpressions(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext, SyntaxNode syntaxNode)
protected override IEnumerable<SyntaxNode> TryGetArgumentExpressions(
SyntaxNodeAnalysisContext syntaxNodeAnalysisContext, SyntaxNode syntaxNode)
{
SeparatedSyntaxList<ArgumentSyntax> argumentList = default;
switch (syntaxNode)
Expand All @@ -41,7 +42,7 @@ protected override List<SyntaxNode> TryGetArgumentExpressions(SyntaxNodeAnalysis
break;
}

return argumentList.Select<ArgumentSyntax, SyntaxNode>(node => node.GetExpression()).ToList();
return argumentList.Select<ArgumentSyntax, SyntaxNode>(node => node.GetExpression());
}
}
}

0 comments on commit fe16f24

Please sign in to comment.