Skip to content

Commit 679ce35

Browse files
authored
Merge pull request #361 from sungam3r/api
Add API approval test
2 parents da62a35 + 2d5e1dd commit 679ce35

File tree

4 files changed

+78
-5
lines changed

4 files changed

+78
-5
lines changed

.gitignore

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ publish/
132132
# Publish Web Output
133133
*.[Pp]ublish.xml
134134
*.azurePubxml
135-
# TODO: Comment the next line if you want to checkin your web deploy settings
135+
# TODO: Comment the next line if you want to checkin your web deploy settings
136136
# but database connection strings (with potential passwords) will be unencrypted
137137
*.pubxml
138138
*.publishproj
@@ -200,7 +200,4 @@ FakesAssemblies/
200200

201201
project.lock.json
202202

203-
#Test files
204-
*.txt
205-
206203
artifacts/
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#if NET7_0
2+
3+
using PublicApiGenerator;
4+
using Shouldly;
5+
6+
namespace Serilog.Settings.Configuration.Tests;
7+
8+
public class ApiApprovalTests
9+
{
10+
[Fact]
11+
public void PublicApi_Should_Not_Change_Unintentionally()
12+
{
13+
var assembly = typeof(ConfigurationReaderOptions).Assembly;
14+
var publicApi = assembly.GeneratePublicApi(
15+
new()
16+
{
17+
IncludeAssemblyAttributes = false,
18+
ExcludeAttributes = new[] { "System.Diagnostics.DebuggerDisplayAttribute" },
19+
});
20+
21+
publicApi.ShouldMatchApproved(options => options.WithFilenameGenerator((_, _, fileType, fileExtension) => $"{assembly.GetName().Name!}.{fileType}.{fileExtension}"));
22+
}
23+
}
24+
25+
#endif

test/Serilog.Settings.Configuration.Tests/Serilog.Settings.Configuration.Tests.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,11 @@
1919
<ItemGroup>
2020
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
2121
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
22-
<PackageReference Include="Microsoft.TestPlatform.ObjectModel" Version="17.5.0" />
2322
<PackageReference Include="Serilog.Expressions" Version="3.3.0" />
2423
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
2524
<PackageReference Include="xunit" Version="2.4.2" />
25+
<PackageReference Include="Shouldly" Version="4.1.0" />
26+
<PackageReference Include="PublicApiGenerator" Version="11.0.0" />
2627
</ItemGroup>
2728

2829
<ItemGroup>
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
namespace Serilog
2+
{
3+
public static class ConfigurationLoggerConfigurationExtensions
4+
{
5+
public const string DefaultSectionName = "Serilog";
6+
[System.Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, ConfigurationReaderOptio" +
7+
"ns readerOptions) instead.")]
8+
public static Serilog.LoggerConfiguration Configuration(this Serilog.Configuration.LoggerSettingsConfiguration settingConfiguration, Microsoft.Extensions.Configuration.IConfiguration configuration, Microsoft.Extensions.DependencyModel.DependencyContext dependencyContext) { }
9+
[System.Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, ConfigurationReaderOptio" +
10+
"ns readerOptions) instead.")]
11+
public static Serilog.LoggerConfiguration Configuration(this Serilog.Configuration.LoggerSettingsConfiguration settingConfiguration, Microsoft.Extensions.Configuration.IConfiguration configuration, Serilog.Settings.Configuration.ConfigurationAssemblySource configurationAssemblySource) { }
12+
public static Serilog.LoggerConfiguration Configuration(this Serilog.Configuration.LoggerSettingsConfiguration settingConfiguration, Microsoft.Extensions.Configuration.IConfiguration configuration, Serilog.Settings.Configuration.ConfigurationReaderOptions readerOptions = null) { }
13+
[System.Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, ConfigurationReaderOptio" +
14+
"ns readerOptions) instead.")]
15+
public static Serilog.LoggerConfiguration Configuration(this Serilog.Configuration.LoggerSettingsConfiguration settingConfiguration, Microsoft.Extensions.Configuration.IConfiguration configuration, params System.Reflection.Assembly[] assemblies) { }
16+
[System.Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, ConfigurationReaderOptio" +
17+
"ns readerOptions) instead.")]
18+
public static Serilog.LoggerConfiguration Configuration(this Serilog.Configuration.LoggerSettingsConfiguration settingConfiguration, Microsoft.Extensions.Configuration.IConfiguration configuration, string sectionName, Microsoft.Extensions.DependencyModel.DependencyContext dependencyContext = null) { }
19+
[System.Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, ConfigurationReaderOptio" +
20+
"ns readerOptions) instead.")]
21+
public static Serilog.LoggerConfiguration Configuration(this Serilog.Configuration.LoggerSettingsConfiguration settingConfiguration, Microsoft.Extensions.Configuration.IConfiguration configuration, string sectionName, Serilog.Settings.Configuration.ConfigurationAssemblySource configurationAssemblySource) { }
22+
[System.Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, ConfigurationReaderOptio" +
23+
"ns readerOptions) instead.")]
24+
public static Serilog.LoggerConfiguration Configuration(this Serilog.Configuration.LoggerSettingsConfiguration settingConfiguration, Microsoft.Extensions.Configuration.IConfiguration configuration, string sectionName, params System.Reflection.Assembly[] assemblies) { }
25+
[System.Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, string sectionName, Depe" +
26+
"ndencyContext dependencyContext) instead.")]
27+
public static Serilog.LoggerConfiguration ConfigurationSection(this Serilog.Configuration.LoggerSettingsConfiguration settingConfiguration, Microsoft.Extensions.Configuration.IConfigurationSection configSection, Microsoft.Extensions.DependencyModel.DependencyContext dependencyContext = null) { }
28+
[System.Obsolete("Use ReadFrom.Configuration(IConfiguration configuration, string sectionName, Conf" +
29+
"igurationAssemblySource configurationAssemblySource) instead.")]
30+
public static Serilog.LoggerConfiguration ConfigurationSection(this Serilog.Configuration.LoggerSettingsConfiguration settingConfiguration, Microsoft.Extensions.Configuration.IConfigurationSection configSection, Serilog.Settings.Configuration.ConfigurationAssemblySource configurationAssemblySource) { }
31+
}
32+
}
33+
namespace Serilog.Settings.Configuration
34+
{
35+
public enum ConfigurationAssemblySource
36+
{
37+
UseLoadedAssemblies = 0,
38+
AlwaysScanDllFiles = 1,
39+
}
40+
public sealed class ConfigurationReaderOptions
41+
{
42+
public ConfigurationReaderOptions() { }
43+
public ConfigurationReaderOptions(Microsoft.Extensions.DependencyModel.DependencyContext dependencyContext) { }
44+
public ConfigurationReaderOptions(Serilog.Settings.Configuration.ConfigurationAssemblySource configurationAssemblySource) { }
45+
public ConfigurationReaderOptions(params System.Reflection.Assembly[] assemblies) { }
46+
public System.IFormatProvider FormatProvider { get; init; }
47+
public System.Action<string, Serilog.Core.LoggingLevelSwitch> OnLevelSwitchCreated { get; init; }
48+
public string SectionName { get; init; }
49+
}
50+
}

0 commit comments

Comments
 (0)