Skip to content

Commit 593e5ba

Browse files
committed
Refactoring injection Analyzer
Check Class Declaration
1 parent c2bfd27 commit 593e5ba

2 files changed

Lines changed: 7 additions & 7 deletions

File tree

System.IO.Abstractions.Analyzers.Tests/Analyzers/FileServiceInterfaceInjectionAnalyzerTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public void Analyzer_is_not_triggered(string filename)
1818
}
1919

2020
[Theory]
21-
[InlineData("WithOutFileSystem.txt", 7, 10)]
21+
[InlineData("WithOutFileSystem.txt", 5, 15)]
2222
public void Analyzer_is_triggered(string filename, int diagnosticLine, int diagnosticColumn)
2323
{
2424
var source = ReadFile(filename);

System.IO.Abstractions.Analyzers/Analyzers/FileServiceInterfaceInjectionAnalyzer.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,25 +52,25 @@ protected override void AnalyzeCompilation(CompilationStartAnalysisContext compi
5252
{
5353
compilationStartContext.RegisterSyntaxNodeAction(syntaxContext =>
5454
{
55-
var constructor = (ConstructorDeclarationSyntax) syntaxContext.Node;
55+
var classDeclarationSyntax = (ClassDeclarationSyntax) syntaxContext.Node;
5656

57-
var compilationUnitSyntax = GetCompilationUnit(constructor);
57+
var compilationUnitSyntax = GetCompilationUnit(classDeclarationSyntax);
5858

5959
if (compilationUnitSyntax.Usings.All(x => x.Name.NormalizeWhitespace().ToFullString() != typeof(Path).Namespace))
6060
{
6161
return;
6262
}
6363

64-
var fileSystem = constructor.ParameterList.Parameters.FirstOrDefault(x =>
65-
x.Type.NormalizeWhitespace().ToFullString() == fileSystemContext.FileSystemType.Name);
64+
var fileSystem = classDeclarationSyntax.Members.OfType<FieldDeclarationSyntax>().FirstOrDefault(x =>
65+
x.NormalizeWhitespace().ToFullString() == fileSystemContext.FileSystemType.Name);
6666

6767
if (fileSystem == null)
6868
{
6969
syntaxContext.ReportDiagnostic(Diagnostic.Create(Rule,
70-
constructor.Identifier.GetLocation()));
70+
classDeclarationSyntax.Identifier.GetLocation()));
7171
}
7272
},
73-
SyntaxKind.ConstructorDeclaration);
73+
SyntaxKind.ClassDeclaration);
7474
}
7575

7676
private CompilationUnitSyntax GetCompilationUnit(SyntaxNode node)

0 commit comments

Comments
 (0)