Skip to content

Commit d66018f

Browse files
authored
Merge pull request #411 from manfred-brands/issues/410_nunit2044_false_positive
NUnit2044: Check type of operation instead.
2 parents 1c07355 + e9b5bde commit d66018f

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

src/nunit.analyzers.tests/DelegateRequired/DelegateRequiredAnalyzerTests.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,32 @@ public void AnalyzeWhenDelegateProvided()
4646
RoslynAssert.Valid(analyzer, testCode);
4747
}
4848

49+
[Test]
50+
public void AnalyzeWhenDelegateLocalProvided()
51+
{
52+
var testCode = TestUtility.WrapInTestMethod(@"
53+
TestDelegate action = MyOperation;
54+
Assert.That(action, Throws.InvalidOperationException);
55+
56+
static void MyOperation() => throw new InvalidOperationException();
57+
");
58+
59+
RoslynAssert.Valid(analyzer, testCode);
60+
}
61+
62+
[Test]
63+
public void AnalyzeWhenDelegateParameterProvided()
64+
{
65+
var testCode = TestUtility.WrapInTestMethod(@"
66+
AssertSupported(MyOperation);
67+
68+
static void AssertSupported(Action test) => Assert.That(test, Throws.InvalidOperationException);
69+
static void MyOperation() => throw new InvalidOperationException();
70+
");
71+
72+
RoslynAssert.Valid(analyzer, testCode);
73+
}
74+
4975
[Test]
5076
public void AnalyzeWhenAsyncDelegateProvided()
5177
{

src/nunit.analyzers/DelegateRequired/DelegateRequiredAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ protected override void AnalyzeAssertInvocation(OperationAnalysisContext context
3131
return;
3232
}
3333

34-
if (actualOperation is IDelegateCreationOperation)
34+
if (actualOperation.Type.TypeKind == TypeKind.Delegate)
3535
{
3636
return;
3737
}

0 commit comments

Comments
 (0)