From 5945d6fb5010634d192542aeedfb1753faa81413 Mon Sep 17 00:00:00 2001 From: Suchiman Date: Tue, 20 Sep 2016 03:15:06 +0200 Subject: [PATCH] Ignore Enrich.With<> / With(params) since it cannot be expressed in config --- .../SerilogAnalyzer.Test/RefactoringTests.cs | 66 +++++++++++++++++++ .../CodeRefactoringProvider.cs | 5 ++ 2 files changed, 71 insertions(+) diff --git a/SerilogAnalyzer/SerilogAnalyzer.Test/RefactoringTests.cs b/SerilogAnalyzer/SerilogAnalyzer.Test/RefactoringTests.cs index 19925e7..cbc532a 100644 --- a/SerilogAnalyzer/SerilogAnalyzer.Test/RefactoringTests.cs +++ b/SerilogAnalyzer/SerilogAnalyzer.Test/RefactoringTests.cs @@ -598,6 +598,72 @@ public object GetFormat(Type formatType) { return null; } +}"; + VerifyCSharpRefactoring(test, fixtest, "Show appsettings.json config"); + } + + [TestMethod] + public void TestEnrichWithEnricher() + { + var test = @" +using Serilog; +using System; + +class TypeName +{ + public static void Test() + { + ILogger test = [|new LoggerConfiguration() + .Enrich.With(null) + .CreateLogger()|]; + } +}"; + + var fixtest = @" +using Serilog; +using System; + +class TypeName +{ + public static void Test() + { + ILogger test = new LoggerConfiguration() + .Enrich.With(null) + .CreateLogger(); + } +}"; + VerifyCSharpRefactoring(test, fixtest, "Show appsettings.json config"); + } + + [TestMethod] + public void TestEnrichWithGenericEnricher() + { + var test = @" +using Serilog; +using System; + +class TypeName +{ + public static void Test() + { + ILogger test = [|new LoggerConfiguration() + .Enrich.With() + .CreateLogger()|]; + } +}"; + + var fixtest = @" +using Serilog; +using System; + +class TypeName +{ + public static void Test() + { + ILogger test = new LoggerConfiguration() + .Enrich.With() + .CreateLogger(); + } }"; VerifyCSharpRefactoring(test, fixtest, "Show appsettings.json config"); } diff --git a/SerilogAnalyzer/SerilogAnalyzer/CodeRefactoringProvider.cs b/SerilogAnalyzer/SerilogAnalyzer/CodeRefactoringProvider.cs index 696de9c..d7cc1e0 100644 --- a/SerilogAnalyzer/SerilogAnalyzer/CodeRefactoringProvider.cs +++ b/SerilogAnalyzer/SerilogAnalyzer/CodeRefactoringProvider.cs @@ -192,6 +192,11 @@ private static LoggerConfiguration GetLoggerConfigurationFromSyntax(CodeRefactor configuration.EnrichWithProperty[key] = value; } } + else if (((invokedMethod.Name as GenericNameSyntax)?.Identifier.ToString() ?? invokedMethod.Name.ToString()) == "With") + { + // configuration cannot express Enrich.With(new SomeEnricher()) or Enrich.With() + continue; + } else { var method = GetExtensibleMethod(semanticModel, invokedMethod, context.CancellationToken);