From ffd19f2873a2ca301282e6bcf549ddf54e633bcb Mon Sep 17 00:00:00 2001 From: tpodolak Date: Sun, 22 Sep 2019 19:13:44 +0200 Subject: [PATCH] [GH-35] - handling casts in arg matcher analyzers --- .../ArgumentMatcherCompilationAnalyzer.cs | 20 ++++++++++++++++ .../ArgumentMatcherCompilationAnalyzer.cs | 15 ++++++++++++ .../ArgumentMatcherDiagnosticVerifier.cs | 16 +++++++++++++ .../ReceivedAsExtensionMethodTests.cs | 4 ++-- .../ReceivedAsOrdinaryMethodTests.cs | 4 ++-- .../ReceivedInOrderMethodTests.cs | 4 ++-- .../ReturnsAsExtensionMethodTests.cs | 4 ++-- .../ReturnsAsOrdinaryMethodTests.cs | 4 ++-- .../ReturnsNullAsExtensionMethodTests.cs | 4 ++-- .../ReturnsNullAsOrdinaryMethodTests.cs | 4 ++-- .../ThrowsAsExtensionMethodTests.cs | 4 ++-- ...sionMethodWithGenericTypeSpecifiedTests.cs | 4 ++-- .../ThrowsAsOrdinaryMethodTests.cs | 4 ++-- ...naryMethodWithGenericTypeSpecifiedTests.cs | 4 ++-- .../WhenAsExtensionMethodTests.cs | 4 ++-- .../WhenAsOrdinaryMethodTests.cs | 4 ++-- .../ArgumentMatcherDiagnosticVerifier.cs | 24 +++++++++++++++++++ .../ReceivedAsExtensionMethodTests.cs | 4 ++-- .../ReceivedAsOrdinaryMethodTests.cs | 4 ++-- .../ReceivedInOrderMethodTests.cs | 6 ++--- .../ReturnsAsExtensionMethodTests.cs | 4 ++-- .../ReturnsAsOrdinaryMethodTests.cs | 4 ++-- .../ReturnsNullAsExtensionMethodTests.cs | 4 ++-- .../ReturnsNullAsOrdinaryMethodTests.cs | 4 ++-- .../ThrowsAsExtensionMethodTests.cs | 4 ++-- .../ThrowsAsOrdinaryMethodTests.cs | 4 ++-- ...naryMethodWithGenericTypeSpecifiedTests.cs | 4 ++-- .../WhenAsExtensionMethodTests.cs | 4 ++-- .../WhenAsOrdinaryMethodTests.cs | 4 ++-- 29 files changed, 126 insertions(+), 51 deletions(-) diff --git a/src/NSubstitute.Analyzers.CSharp/DiagnosticAnalyzers/ArgumentMatcherCompilationAnalyzer.cs b/src/NSubstitute.Analyzers.CSharp/DiagnosticAnalyzers/ArgumentMatcherCompilationAnalyzer.cs index 45faf693..1c394a59 100644 --- a/src/NSubstitute.Analyzers.CSharp/DiagnosticAnalyzers/ArgumentMatcherCompilationAnalyzer.cs +++ b/src/NSubstitute.Analyzers.CSharp/DiagnosticAnalyzers/ArgumentMatcherCompilationAnalyzer.cs @@ -18,6 +18,26 @@ internal sealed class ArgumentMatcherCompilationAnalyzer : AbstractArgumentMatch (int)SyntaxKind.ArgumentList, (int)SyntaxKind.InvocationExpression), ImmutableArray.Create( + (int)SyntaxKind.Argument, + (int)SyntaxKind.BracketedArgumentList, + (int)SyntaxKind.ElementAccessExpression), + ImmutableArray.Create( + (int)SyntaxKind.CastExpression, + (int)SyntaxKind.Argument, + (int)SyntaxKind.ArgumentList, + (int)SyntaxKind.InvocationExpression), + ImmutableArray.Create( + (int)SyntaxKind.AsExpression, + (int)SyntaxKind.Argument, + (int)SyntaxKind.ArgumentList, + (int)SyntaxKind.InvocationExpression), + ImmutableArray.Create( + (int)SyntaxKind.CastExpression, + (int)SyntaxKind.Argument, + (int)SyntaxKind.BracketedArgumentList, + (int)SyntaxKind.ElementAccessExpression), + ImmutableArray.Create( + (int)SyntaxKind.AsExpression, (int)SyntaxKind.Argument, (int)SyntaxKind.BracketedArgumentList, (int)SyntaxKind.ElementAccessExpression)); diff --git a/src/NSubstitute.Analyzers.VisualBasic/DiagnosticAnalyzers/ArgumentMatcherCompilationAnalyzer.cs b/src/NSubstitute.Analyzers.VisualBasic/DiagnosticAnalyzers/ArgumentMatcherCompilationAnalyzer.cs index d43dc038..b411f139 100644 --- a/src/NSubstitute.Analyzers.VisualBasic/DiagnosticAnalyzers/ArgumentMatcherCompilationAnalyzer.cs +++ b/src/NSubstitute.Analyzers.VisualBasic/DiagnosticAnalyzers/ArgumentMatcherCompilationAnalyzer.cs @@ -14,6 +14,21 @@ internal sealed class ArgumentMatcherCompilationAnalyzer : AbstractArgumentMatch { private static ImmutableArray> AllowedPaths { get; } = ImmutableArray.Create( ImmutableArray.Create( + (int)SyntaxKind.SimpleArgument, + (int)SyntaxKind.ArgumentList, + (int)SyntaxKind.InvocationExpression), + ImmutableArray.Create( + (int)SyntaxKind.TryCastExpression, + (int)SyntaxKind.SimpleArgument, + (int)SyntaxKind.ArgumentList, + (int)SyntaxKind.InvocationExpression), + ImmutableArray.Create( + (int)SyntaxKind.DirectCastExpression, + (int)SyntaxKind.SimpleArgument, + (int)SyntaxKind.ArgumentList, + (int)SyntaxKind.InvocationExpression), + ImmutableArray.Create( + (int)SyntaxKind.CTypeExpression, (int)SyntaxKind.SimpleArgument, (int)SyntaxKind.ArgumentList, (int)SyntaxKind.InvocationExpression)); diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ArgumentMatcherDiagnosticVerifier.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ArgumentMatcherDiagnosticVerifier.cs index b8f15ffa..6244a1bb 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ArgumentMatcherDiagnosticVerifier.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ArgumentMatcherDiagnosticVerifier.cs @@ -17,16 +17,32 @@ public abstract class ArgumentMatcherDiagnosticVerifier : CSharpDiagnosticVerifi [CombinatoryTheory] [InlineData("Arg.Any()")] + [InlineData("(int)Arg.Any()")] + [InlineData("Arg.Any() as int?")] [InlineData("Arg.Compat.Any()")] + [InlineData("(int)Arg.Compat.Any()")] + [InlineData("Arg.Compat.Any() as int?")] [InlineData("Arg.Is(1)")] + [InlineData("(int)Arg.Is(1)")] + [InlineData("Arg.Is(1) as int?")] [InlineData("Arg.Compat.Is(1)")] + [InlineData("(int)Arg.Compat.Is(1)")] + [InlineData("Arg.Compat.Is(1) as int?")] public abstract Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_ForMethodCall(string method, string arg); [CombinatoryTheory] [InlineData("Arg.Any()")] + [InlineData("(int)Arg.Any()")] + [InlineData("Arg.Any() as int?")] [InlineData("Arg.Compat.Any()")] + [InlineData("(int)Arg.Compat.Any()")] + [InlineData("Arg.Compat.Any() as int?")] [InlineData("Arg.Is(1)")] + [InlineData("(int)Arg.Is(1)")] + [InlineData("Arg.Is(1) as int?")] [InlineData("Arg.Compat.Is(1)")] + [InlineData("(int)Arg.Compat.Is(1)")] + [InlineData("Arg.Compat.Is(1) as int?")] public abstract Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_ForIndexerCall(string method, string arg); [CombinatoryTheory] diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReceivedAsExtensionMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReceivedAsExtensionMethodTests.cs index a70995c0..4a06d999 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReceivedAsExtensionMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReceivedAsExtensionMethodTests.cs @@ -14,7 +14,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int Bar(int x); + public abstract int Bar(int? x); }} public class FooTests @@ -38,7 +38,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int this[int x] {{ get; }} + public abstract int this[int? x] {{ get; }} }} public class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReceivedAsOrdinaryMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReceivedAsOrdinaryMethodTests.cs index 22d7d17f..69634fde 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReceivedAsOrdinaryMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReceivedAsOrdinaryMethodTests.cs @@ -25,7 +25,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int Bar(int x); + public abstract int Bar(int? x); }} public class FooTests @@ -49,7 +49,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int this[int x] {{ get; }} + public abstract int this[int? x] {{ get; }} }} public class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReceivedInOrderMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReceivedInOrderMethodTests.cs index 8c9628a5..fd3318b7 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReceivedInOrderMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReceivedInOrderMethodTests.cs @@ -14,7 +14,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int Bar(int x); + public abstract int Bar(int? x); }} public class FooTests @@ -40,7 +40,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int this[int x] {{ get; }} + public abstract int this[int? x] {{ get; }} }} diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsAsExtensionMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsAsExtensionMethodTests.cs index 49769d41..f25debb8 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsAsExtensionMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsAsExtensionMethodTests.cs @@ -14,7 +14,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int Bar(int x); + public abstract int Bar(int? x); }} public class FooTests @@ -38,7 +38,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int this[int x] {{ get; }} + public abstract int this[int? x] {{ get; }} }} public class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsAsOrdinaryMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsAsOrdinaryMethodTests.cs index 741252d7..8b2955c8 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsAsOrdinaryMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsAsOrdinaryMethodTests.cs @@ -20,7 +20,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int Bar(int x); + public abstract int Bar(int? x); }} public class FooTests @@ -44,7 +44,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int this[int x] {{ get; }} + public abstract int this[int? x] {{ get; }} }} public class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsExtensionMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsExtensionMethodTests.cs index 3cc0feb4..5939aab4 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsExtensionMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsExtensionMethodTests.cs @@ -15,7 +15,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract Foo Bar(int x); + public abstract Foo Bar(int? x); }} public class FooTests @@ -40,7 +40,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract Foo this[int x] {{ get; }} + public abstract Foo this[int? x] {{ get; }} }} public class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsOrdinaryMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsOrdinaryMethodTests.cs index de0af878..fa1b54ed 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsOrdinaryMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsOrdinaryMethodTests.cs @@ -15,7 +15,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract Foo Bar(int x); + public abstract Foo Bar(int? x); }} public class FooTests @@ -40,7 +40,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract Foo this[int x] {{ get; }} + public abstract Foo this[int? x] {{ get; }} }} public class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsExtensionMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsExtensionMethodTests.cs index 6d1a1176..64eba860 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsExtensionMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsExtensionMethodTests.cs @@ -16,7 +16,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int Bar(int x); + public abstract int Bar(int? x); }} public class FooTests @@ -42,7 +42,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int this[int x] {{ get; }} + public abstract int this[int? x] {{ get; }} }} public class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsExtensionMethodWithGenericTypeSpecifiedTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsExtensionMethodWithGenericTypeSpecifiedTests.cs index 5fc5d59a..8fd8a2ff 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsExtensionMethodWithGenericTypeSpecifiedTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsExtensionMethodWithGenericTypeSpecifiedTests.cs @@ -16,7 +16,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int Bar(int x); + public abstract int Bar(int? x); }} public class FooTests @@ -42,7 +42,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int this[int x] {{ get; }} + public abstract int this[int? x] {{ get; }} }} public class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodTests.cs index d8cac40c..3f022000 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodTests.cs @@ -16,7 +16,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int Bar(int x); + public abstract int Bar(int? x); }} public class FooTests @@ -42,7 +42,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int this[int x] {{ get; }} + public abstract int this[int? x] {{ get; }} }} public class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodWithGenericTypeSpecifiedTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodWithGenericTypeSpecifiedTests.cs index 576049d2..7034848b 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodWithGenericTypeSpecifiedTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodWithGenericTypeSpecifiedTests.cs @@ -16,7 +16,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int Bar(int x); + public abstract int Bar(int? x); }} public class FooTests @@ -42,7 +42,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int this[int x] {{ get; }} + public abstract int this[int? x] {{ get; }} }} public class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/WhenAsExtensionMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/WhenAsExtensionMethodTests.cs index 1b83f1e0..7eddb07a 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/WhenAsExtensionMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/WhenAsExtensionMethodTests.cs @@ -16,7 +16,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int Bar(int x); + public abstract int Bar(int? x); }} public class FooTests @@ -50,7 +50,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int this[int x] {{ get; }} + public abstract int this[int? x] {{ get; }} }} public class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/WhenAsOrdinaryMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/WhenAsOrdinaryMethodTests.cs index 8b55ed38..0fecbfdd 100644 --- a/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/WhenAsOrdinaryMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.CSharp/DiagnosticAnalyzerTests/ArgumentMatcherAnalyzerTests/WhenAsOrdinaryMethodTests.cs @@ -16,7 +16,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int Bar(int x); + public abstract int Bar(int? x); }} public class FooTests @@ -49,7 +49,7 @@ namespace MyNamespace {{ public abstract class Foo {{ - public abstract int this[int x] {{ get; }} + public abstract int this[int? x] {{ get; }} }} public class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ArgumentMatcherDiagnosticVerifier.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ArgumentMatcherDiagnosticVerifier.cs index 16ed1860..0e4bb4fa 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ArgumentMatcherDiagnosticVerifier.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ArgumentMatcherDiagnosticVerifier.cs @@ -16,16 +16,40 @@ public abstract class ArgumentMatcherDiagnosticVerifier : VisualBasicDiagnosticV [CombinatoryTheory] [InlineData("Arg.Any(Of Integer)()")] + [InlineData("TryCast(Arg.Any(Of Integer)(), Object)")] + [InlineData("CType(Arg.Any(Of Integer)(), Integer)")] + [InlineData("DirectCast(Arg.Any(Of Integer)(), Integer)")] [InlineData("Arg.Compat.Any(Of Integer)()")] + [InlineData("TryCast(Arg.Compat.Any(Of Integer)(), Object)")] + [InlineData("CType(Arg.Compat.Any(Of Integer)(), Integer)")] + [InlineData("DirectCast(Arg.Compat.Any(Of Integer)(), Integer)")] [InlineData("Arg.Is(1)")] + [InlineData("TryCast(Arg.Is(1), Object)")] + [InlineData("CType(Arg.Is(1), Integer)")] + [InlineData("DirectCast(Arg.Is(1), Integer)")] [InlineData("Arg.Compat.Is(1)")] + [InlineData("TryCast(Arg.Compat.Is(1), Object)")] + [InlineData("CType(Arg.Compat.Is(1), Integer)")] + [InlineData("DirectCast(Arg.Compat.Is(1), Integer)")] public abstract Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_ForMethodCall(string method, string arg); [CombinatoryTheory] [InlineData("Arg.Any(Of Integer)()")] + [InlineData("TryCast(Arg.Any(Of Integer)(), Object)")] + [InlineData("CType(Arg.Any(Of Integer)(), Integer)")] + [InlineData("DirectCast(Arg.Any(Of Integer)(), Integer)")] [InlineData("Arg.Compat.Any(Of Integer)()")] + [InlineData("TryCast(Arg.Compat.Any(Of Integer)(), Object)")] + [InlineData("CType(Arg.Compat.Any(Of Integer)(), Integer)")] + [InlineData("DirectCast(Arg.Compat.Any(Of Integer)(), Integer)")] [InlineData("Arg.Is(1)")] + [InlineData("TryCast(Arg.Is(1), Object)")] + [InlineData("CType(Arg.Is(1), Integer)")] + [InlineData("DirectCast(Arg.Is(1), Integer)")] [InlineData("Arg.Compat.Is(1)")] + [InlineData("TryCast(Arg.Compat.Is(1), Object)")] + [InlineData("CType(Arg.Compat.Is(1), Integer)")] + [InlineData("DirectCast(Arg.Compat.Is(1), Integer)")] public abstract Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_ForIndexerCall(string method, string arg); [CombinatoryTheory] diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReceivedAsExtensionMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReceivedAsExtensionMethodTests.cs index 1e95bb8f..830308ee 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReceivedAsExtensionMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReceivedAsExtensionMethodTests.cs @@ -12,7 +12,7 @@ public override async Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_For Namespace MyNamespace Public MustInherit Class Foo - Public MustOverride Function Bar(ByVal x As Integer) As Integer + Public MustOverride Function Bar(ByVal x As Object) As Integer End Class Public Class FooTests @@ -33,7 +33,7 @@ public override async Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_For Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Integer + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Integer End Class Public Class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReceivedAsOrdinaryMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReceivedAsOrdinaryMethodTests.cs index 2cc41266..21836fdc 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReceivedAsOrdinaryMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReceivedAsOrdinaryMethodTests.cs @@ -20,7 +20,7 @@ public override async Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_For Namespace MyNamespace Public MustInherit Class Foo - Public MustOverride Function Bar(ByVal x As Integer) As Integer + Public MustOverride Function Bar(ByVal x As Object) As Integer End Class Public Class FooTests @@ -41,7 +41,7 @@ public override async Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_For Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Integer + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Integer End Class Public Class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReceivedInOrderMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReceivedInOrderMethodTests.cs index 0f41db1f..317ac447 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReceivedInOrderMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReceivedInOrderMethodTests.cs @@ -12,7 +12,7 @@ public override async Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_For Namespace MyNamespace Public MustInherit Class Foo - Public MustOverride Function Bar(ByVal x As Integer) As Integer + Public MustOverride Function Bar(ByVal x As Object) As Integer End Class Public Class FooTests @@ -36,7 +36,7 @@ public override async Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_For Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Integer + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Integer End Class Public Class FooTests @@ -60,7 +60,7 @@ Imports NSubstitute Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Integer + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Integer End Class Public Class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsAsExtensionMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsAsExtensionMethodTests.cs index 335ac467..8643d368 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsAsExtensionMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsAsExtensionMethodTests.cs @@ -12,7 +12,7 @@ public override async Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_For Namespace MyNamespace Public MustInherit Class Foo - Public MustOverride Function Bar(ByVal x As Integer) As Integer + Public MustOverride Function Bar(ByVal x As Object) As Integer End Class Public Class FooTests @@ -33,7 +33,7 @@ public override async Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_For Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Integer + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Integer End Class Public Class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsAsOrdinaryMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsAsOrdinaryMethodTests.cs index 09cd9474..3a164e42 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsAsOrdinaryMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsAsOrdinaryMethodTests.cs @@ -16,7 +16,7 @@ public override async Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_For Namespace MyNamespace Public MustInherit Class Foo - Public MustOverride Function Bar(ByVal x As Integer) As Integer + Public MustOverride Function Bar(ByVal x As Object) As Integer End Class Public Class FooTests @@ -37,7 +37,7 @@ public override async Task ReportsNoDiagnostics_WhenUsedWithSubstituteMethod_For Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Integer + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Integer End Class Public Class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsExtensionMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsExtensionMethodTests.cs index 7300dc90..064f83f6 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsExtensionMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsExtensionMethodTests.cs @@ -13,7 +13,7 @@ Imports NSubstitute.ReturnsExtensions Namespace MyNamespace Public MustInherit Class Foo - Public MustOverride Function Bar(ByVal x As Integer) As Foo + Public MustOverride Function Bar(ByVal x As Object) As Foo End Class Public Class FooTests @@ -35,7 +35,7 @@ Imports NSubstitute.ReturnsExtensions Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Foo + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Foo End Class Public Class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsOrdinaryMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsOrdinaryMethodTests.cs index 2bb571d3..b8122d3b 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsOrdinaryMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ReturnsNullAsOrdinaryMethodTests.cs @@ -17,7 +17,7 @@ Imports NSubstitute.ReturnsExtensions Namespace MyNamespace Public MustInherit Class Foo - Public MustOverride Function Bar(ByVal x As Integer) As Foo + Public MustOverride Function Bar(ByVal x As Object) As Foo End Class Public Class FooTests @@ -39,7 +39,7 @@ Imports NSubstitute.ReturnsExtensions Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Foo + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Foo End Class Public Class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ThrowsAsExtensionMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ThrowsAsExtensionMethodTests.cs index ae9e11d8..e9972b9c 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ThrowsAsExtensionMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ThrowsAsExtensionMethodTests.cs @@ -14,7 +14,7 @@ Imports NSubstitute.ExceptionExtensions Namespace MyNamespace Public MustInherit Class Foo - Public MustOverride Function Bar(ByVal x As Integer) As Foo + Public MustOverride Function Bar(ByVal x As Object) As Foo End Class Public Class FooTests @@ -37,7 +37,7 @@ Imports NSubstitute.ExceptionExtensions Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Foo + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Foo End Class Public Class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodTests.cs index 432b8490..7342d56d 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodTests.cs @@ -14,7 +14,7 @@ Imports NSubstitute.ExceptionExtensions Namespace MyNamespace Public MustInherit Class Foo - Public MustOverride Function Bar(ByVal x As Integer) As Foo + Public MustOverride Function Bar(ByVal x As Object) As Foo End Class Public Class FooTests @@ -37,7 +37,7 @@ Imports NSubstitute.ExceptionExtensions Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Foo + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Foo End Class Public Class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodWithGenericTypeSpecifiedTests.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodWithGenericTypeSpecifiedTests.cs index a0d98204..ff9dd575 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodWithGenericTypeSpecifiedTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/ThrowsAsOrdinaryMethodWithGenericTypeSpecifiedTests.cs @@ -14,7 +14,7 @@ Imports NSubstitute.ExceptionExtensions Namespace MyNamespace Public MustInherit Class Foo - Public MustOverride Function Bar(ByVal x As Integer) As Foo + Public MustOverride Function Bar(ByVal x As Object) As Foo End Class Public Class FooTests @@ -37,7 +37,7 @@ Imports NSubstitute.ExceptionExtensions Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Foo + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Foo End Class Public Class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/WhenAsExtensionMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/WhenAsExtensionMethodTests.cs index e97a76c4..69bcd2ed 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/WhenAsExtensionMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/WhenAsExtensionMethodTests.cs @@ -14,7 +14,7 @@ Imports NSubstitute Namespace MyNamespace Public MustInherit Class Foo - Public MustOverride Function Bar(ByVal x As Integer) As Integer + Public MustOverride Function Bar(ByVal x As Object) As Integer End Class Public Class FooTests @@ -49,7 +49,7 @@ Imports NSubstitute Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Integer + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Integer End Class Public Class FooTests diff --git a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/WhenAsOrdinaryMethodTests.cs b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/WhenAsOrdinaryMethodTests.cs index 237f814a..aba5e4a3 100644 --- a/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/WhenAsOrdinaryMethodTests.cs +++ b/tests/NSubstitute.Analyzers.Tests.VisualBasic/DiagnosticAnalyzersTests/ArgumentMatcherAnalyzerTests/WhenAsOrdinaryMethodTests.cs @@ -18,7 +18,7 @@ Imports NSubstitute Namespace MyNamespace Public MustInherit Class Foo - Public MustOverride Function Bar(ByVal x As Integer) As Integer + Public MustOverride Function Bar(ByVal x As Object) As Integer End Class Public Class FooTests @@ -53,7 +53,7 @@ Imports NSubstitute Namespace MyNamespace Public MustInherit Class Foo - Default Public MustOverride ReadOnly Property Item(ByVal x As Integer) As Integer + Default Public MustOverride ReadOnly Property Item(ByVal x As Object) As Integer End Class Public Class FooTests