Skip to content

Commit 9765013

Browse files
authored
Merge pull request #221 from sungam3r/api
Add API approval test
2 parents e51f566 + c102f60 commit 9765013

File tree

4 files changed

+91
-32
lines changed

4 files changed

+91
-32
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2019 Serilog Contributors
1+
// Copyright 2019 Serilog Contributors
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -34,23 +34,15 @@ public static class LevelConvert
3434
/// different semantics.</remarks>
3535
public static LogEventLevel ToSerilogLevel(LogLevel logLevel)
3636
{
37-
switch (logLevel)
37+
return logLevel switch
3838
{
39-
case LogLevel.None:
40-
case LogLevel.Critical:
41-
return LogEventLevel.Fatal;
42-
case LogLevel.Error:
43-
return LogEventLevel.Error;
44-
case LogLevel.Warning:
45-
return LogEventLevel.Warning;
46-
case LogLevel.Information:
47-
return LogEventLevel.Information;
48-
case LogLevel.Debug:
49-
return LogEventLevel.Debug;
50-
case LogLevel.Trace:
51-
default:
52-
return LogEventLevel.Verbose;
53-
}
39+
LogLevel.None or LogLevel.Critical => LogEventLevel.Fatal,
40+
LogLevel.Error => LogEventLevel.Error,
41+
LogLevel.Warning => LogEventLevel.Warning,
42+
LogLevel.Information => LogEventLevel.Information,
43+
LogLevel.Debug => LogEventLevel.Debug,
44+
_ => LogEventLevel.Verbose,
45+
};
5446
}
5547

5648
/// <summary>
@@ -60,21 +52,14 @@ public static LogEventLevel ToSerilogLevel(LogLevel logLevel)
6052
/// <returns>The Microsoft.Extensions.Logging equivalent of <paramref name="logEventLevel"/>.</returns>
6153
public static LogLevel ToExtensionsLevel(LogEventLevel logEventLevel)
6254
{
63-
switch (logEventLevel)
55+
return logEventLevel switch
6456
{
65-
case LogEventLevel.Fatal:
66-
return LogLevel.Critical;
67-
case LogEventLevel.Error:
68-
return LogLevel.Error;
69-
case LogEventLevel.Warning:
70-
return LogLevel.Warning;
71-
case LogEventLevel.Information:
72-
return LogLevel.Information;
73-
case LogEventLevel.Debug:
74-
return LogLevel.Debug;
75-
case LogEventLevel.Verbose:
76-
default:
77-
return LogLevel.Trace;
78-
}
57+
LogEventLevel.Fatal => LogLevel.Critical,
58+
LogEventLevel.Error => LogLevel.Error,
59+
LogEventLevel.Warning => LogLevel.Warning,
60+
LogEventLevel.Information => LogLevel.Information,
61+
LogEventLevel.Debug => LogLevel.Debug,
62+
_ => LogLevel.Trace,
63+
};
7964
}
8065
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#if NET7_0
2+
3+
using PublicApiGenerator;
4+
using Shouldly;
5+
using Xunit;
6+
7+
namespace Serilog.Extensions.Logging.Tests;
8+
9+
public class ApiApprovalTests
10+
{
11+
[Fact]
12+
public void PublicApi_Should_Not_Change_Unintentionally()
13+
{
14+
var assembly = typeof(LoggerSinkConfigurationExtensions).Assembly;
15+
var publicApi = assembly.GeneratePublicApi(
16+
new()
17+
{
18+
IncludeAssemblyAttributes = false,
19+
ExcludeAttributes = new[] { "System.Diagnostics.DebuggerDisplayAttribute" },
20+
});
21+
22+
publicApi.ShouldMatchApproved(options => options.WithFilenameGenerator((_, _, fileType, fileExtension) => $"{assembly.GetName().Name!}.{fileType}.{fileExtension}"));
23+
}
24+
}
25+
26+
#endif

test/Serilog.Extensions.Logging.Tests/Serilog.Extensions.Logging.Tests.csproj

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1616
</PackageReference>
1717
<PackageReference Include="xunit" Version="2.4.2" />
18+
<PackageReference Include="Shouldly" Version="4.1.0" />
19+
<PackageReference Include="PublicApiGenerator" Version="11.0.0" />
1820
</ItemGroup>
1921

2022
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
namespace Serilog.Extensions.Logging
2+
{
3+
public static class LevelConvert
4+
{
5+
public static Microsoft.Extensions.Logging.LogLevel ToExtensionsLevel(Serilog.Events.LogEventLevel logEventLevel) { }
6+
public static Serilog.Events.LogEventLevel ToSerilogLevel(Microsoft.Extensions.Logging.LogLevel logLevel) { }
7+
}
8+
public class LoggerProviderCollection : System.IDisposable
9+
{
10+
public LoggerProviderCollection() { }
11+
public System.Collections.Generic.IEnumerable<Microsoft.Extensions.Logging.ILoggerProvider> Providers { get; }
12+
public void AddProvider(Microsoft.Extensions.Logging.ILoggerProvider provider) { }
13+
public void Dispose() { }
14+
}
15+
public class SerilogLoggerFactory : Microsoft.Extensions.Logging.ILoggerFactory, System.IDisposable
16+
{
17+
public SerilogLoggerFactory(Serilog.ILogger? logger = null, bool dispose = false, Serilog.Extensions.Logging.LoggerProviderCollection? providerCollection = null) { }
18+
public void AddProvider(Microsoft.Extensions.Logging.ILoggerProvider provider) { }
19+
public Microsoft.Extensions.Logging.ILogger CreateLogger(string categoryName) { }
20+
public void Dispose() { }
21+
}
22+
[Microsoft.Extensions.Logging.ProviderAlias("Serilog")]
23+
public class SerilogLoggerProvider : Microsoft.Extensions.Logging.ILoggerProvider, Serilog.Core.ILogEventEnricher, System.IDisposable
24+
{
25+
public SerilogLoggerProvider(Serilog.ILogger? logger = null, bool dispose = false) { }
26+
public System.IDisposable BeginScope<T>(T state) { }
27+
public Microsoft.Extensions.Logging.ILogger CreateLogger(string name) { }
28+
public void Dispose() { }
29+
public void Enrich(Serilog.Events.LogEvent logEvent, Serilog.Core.ILogEventPropertyFactory propertyFactory) { }
30+
}
31+
}
32+
namespace Serilog
33+
{
34+
public static class LoggerSinkConfigurationExtensions
35+
{
36+
public static Serilog.LoggerConfiguration Providers(this Serilog.Configuration.LoggerSinkConfiguration configuration, Serilog.Extensions.Logging.LoggerProviderCollection providers, Serilog.Events.LogEventLevel restrictedToMinimumLevel = 0, Serilog.Core.LoggingLevelSwitch? levelSwitch = null) { }
37+
}
38+
public static class SerilogLoggerFactoryExtensions
39+
{
40+
public static Microsoft.Extensions.Logging.ILoggerFactory AddSerilog(this Microsoft.Extensions.Logging.ILoggerFactory factory, Serilog.ILogger? logger = null, bool dispose = false) { }
41+
}
42+
public static class SerilogLoggingBuilderExtensions
43+
{
44+
public static Microsoft.Extensions.Logging.ILoggingBuilder AddSerilog(this Microsoft.Extensions.Logging.ILoggingBuilder builder, Serilog.ILogger? logger = null, bool dispose = false) { }
45+
}
46+
}

0 commit comments

Comments
 (0)