Skip to content

Commit 7d7f9a2

Browse files
committed
Add more tests around IConfiguration/IConfigurationSection support
1 parent 2a0195f commit 7d7f9a2

File tree

2 files changed

+59
-7
lines changed

2 files changed

+59
-7
lines changed

test/Serilog.Settings.Configuration.Tests/ConfigurationSettingsTests.cs

+43-5
Original file line numberDiff line numberDiff line change
@@ -426,28 +426,66 @@ public void SinkWithIConfigurationArguments()
426426
""Using"": [""TestDummies""],
427427
""WriteTo"": [{
428428
""Name"": ""DummyWithConfiguration"",
429-
""Args"": {""pathFormat"" : ""C:\\"",
430-
""configurationSection"" : { ""foo"" : ""bar"" } }
429+
""Args"": {}
431430
}]
432431
}
433432
}";
434433

435-
// IConfiguration and IConfigurationSection arguments do not have
436-
// default values so they will throw if they are not populated
434+
DummyConfigurationSink.Reset();
435+
var log = ConfigFromJson(json)
436+
.CreateLogger();
437437

438+
log.Write(Some.InformationEvent());
439+
440+
Assert.NotNull(DummyConfigurationSink.Configuration);
441+
}
442+
443+
[Fact]
444+
public void SinkWithOptionalIConfigurationArguments()
445+
{
446+
var json = @"{
447+
""Serilog"": {
448+
""Using"": [""TestDummies""],
449+
""WriteTo"": [{
450+
""Name"": ""DummyWithOptionalConfiguration"",
451+
""Args"": {}
452+
}]
453+
}
454+
}";
438455

439456
DummyConfigurationSink.Reset();
440457
var log = ConfigFromJson(json)
441458
.CreateLogger();
442459

443-
444460
log.Write(Some.InformationEvent());
445461

446462
Assert.NotNull(DummyConfigurationSink.Configuration);
463+
}
464+
465+
[Fact]
466+
public void SinkWithIConfigSectionArguments()
467+
{
468+
var json = @"{
469+
""Serilog"": {
470+
""Using"": [""TestDummies""],
471+
""WriteTo"": [{
472+
""Name"": ""DummyWithConfigSection"",
473+
""Args"": {""configurationSection"" : { ""foo"" : ""bar"" } }
474+
}]
475+
}
476+
}";
477+
478+
DummyConfigurationSink.Reset();
479+
var log = ConfigFromJson(json)
480+
.CreateLogger();
481+
482+
log.Write(Some.InformationEvent());
483+
447484
Assert.NotNull(DummyConfigurationSink.ConfigSection);
448485
Assert.Equal("bar", DummyConfigurationSink.ConfigSection["foo"]);
449486
}
450487

488+
451489
[Fact]
452490
public void SinkWithConfigurationBindingArgument()
453491
{

test/TestDummies/DummyLoggerConfigurationExtensions.cs

+16-2
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,25 @@ public static LoggerConfiguration DummyRollingFile(
4040
public static LoggerConfiguration DummyWithConfiguration(
4141
this LoggerSinkConfiguration loggerSinkConfiguration,
4242
IConfiguration appConfiguration,
43+
LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum)
44+
{
45+
return loggerSinkConfiguration.Sink(new DummyConfigurationSink(appConfiguration, null), restrictedToMinimumLevel);
46+
}
47+
48+
public static LoggerConfiguration DummyWithOptionalConfiguration(
49+
this LoggerSinkConfiguration loggerSinkConfiguration,
50+
IConfiguration appConfiguration = null,
51+
LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum)
52+
{
53+
return loggerSinkConfiguration.Sink(new DummyConfigurationSink(appConfiguration, null), restrictedToMinimumLevel);
54+
}
55+
56+
public static LoggerConfiguration DummyWithConfigSection(
57+
this LoggerSinkConfiguration loggerSinkConfiguration,
4358
IConfigurationSection configurationSection,
44-
string pathFormat,
4559
LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum)
4660
{
47-
return loggerSinkConfiguration.Sink(new DummyConfigurationSink(appConfiguration, configurationSection), restrictedToMinimumLevel);
61+
return loggerSinkConfiguration.Sink(new DummyConfigurationSink(null, configurationSection), restrictedToMinimumLevel);
4862
}
4963

5064
public static LoggerConfiguration DummyRollingFile(

0 commit comments

Comments
 (0)