Skip to content

Commit df0ff18

Browse files
committed
More tests.
1 parent f7ce287 commit df0ff18

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
namespace IDisposableAnalyzers.Test.Helpers
2+
{
3+
using System.Threading;
4+
using Gu.Roslyn.AnalyzerExtensions;
5+
using Gu.Roslyn.Asserts;
6+
using Microsoft.CodeAnalysis.CSharp;
7+
using Microsoft.CodeAnalysis.CSharp.Syntax;
8+
using NUnit.Framework;
9+
10+
public static class DisposableMemberTests
11+
{
12+
[Test]
13+
public static void SimpleField()
14+
{
15+
var syntaxTree = CSharpSyntaxTree.ParseText(@"
16+
namespace N
17+
{
18+
using System;
19+
using System.IO;
20+
21+
class C : IDisposable
22+
{
23+
private readonly IDisposable stream = File.OpenRead(string.Empty);
24+
25+
public void Dispose()
26+
{
27+
this.stream.Dispose();
28+
}
29+
}
30+
}");
31+
var compilation = CSharpCompilation.Create("test", new[] { syntaxTree }, MetadataReferences.FromAttributes());
32+
var semanticModel = compilation.GetSemanticModel(syntaxTree);
33+
var field = syntaxTree.FindFieldDeclaration("stream");
34+
var fieldSymbol = semanticModel.GetDeclaredSymbolSafe(field, CancellationToken.None);
35+
Assert.AreEqual(Result.Yes, DisposableMember.IsDisposed(new FieldOrProperty(fieldSymbol), (TypeDeclarationSyntax)field.Parent, semanticModel, CancellationToken.None));
36+
}
37+
}
38+
}

0 commit comments

Comments
 (0)