Skip to content

Commit f9754e4

Browse files
committed
unit test for IConfig, IConfigSection, and config object-binding
1 parent 400b1de commit f9754e4

File tree

4 files changed

+79
-1
lines changed

4 files changed

+79
-1
lines changed

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

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,6 @@ public void SinksAreConfiguredWithStaticMember()
199199
Assert.Equal(ConsoleThemes.Theme1, DummyConsoleSink.Theme);
200200
}
201201

202-
203202
[Theory]
204203
[InlineData("$switchName", true)]
205204
[InlineData("$SwitchName", true)]
@@ -391,6 +390,57 @@ public void LoggingLevelSwitchCanBeUsedForMinimumLevelOverrides()
391390
// ReSharper restore HeuristicUnreachableCode
392391
}
393392

393+
[Fact]
394+
public void SinkWithIConfigurationArguments()
395+
{
396+
var json = @"{
397+
""Serilog"": {
398+
""Using"": [""TestDummies""],
399+
""WriteTo"": [{
400+
""Name"": ""DummyRollingFile"",
401+
""Args"": {""pathFormat"" : ""C:\\"",
402+
""configurationSection"" : { ""foo"" : ""bar"" } }
403+
}]
404+
}
405+
}";
406+
407+
// IConfiguration and IConfigurationSection arguments do not have
408+
// default values so they will throw if they are not populated
409+
410+
var log = ConfigFromJson(json)
411+
.CreateLogger();
412+
413+
DummyRollingFileSink.Emitted.Clear();
414+
415+
log.Write(Some.InformationEvent());
416+
417+
Assert.Equal(1, DummyRollingFileSink.Emitted.Count);
418+
}
419+
420+
[Fact]
421+
public void SinkWithConfigurationBindingArgument()
422+
{
423+
var json = @"{
424+
""Serilog"": {
425+
""Using"": [""TestDummies""],
426+
""WriteTo"": [{
427+
""Name"": ""DummyRollingFile"",
428+
""Args"": {""pathFormat"" : ""C:\\"",
429+
""objectBinding"" : [ { ""foo"" : ""bar"" }, { ""abc"" : ""xyz"" } ] }
430+
}]
431+
}
432+
}";
433+
434+
var log = ConfigFromJson(json)
435+
.CreateLogger();
436+
437+
DummyRollingFileSink.Emitted.Clear();
438+
439+
log.Write(Some.InformationEvent());
440+
441+
Assert.Equal(1, DummyRollingFileSink.Emitted.Count);
442+
}
443+
394444

395445
[Trait("Bugfix", "#91")]
396446
[Fact]

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@
2626

2727
<ItemGroup Condition="'$(TargetFramework)' == 'net452'">
2828
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.1.1" />
29+
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="1.1.2" />
2930
</ItemGroup>
3031

3132
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.0'">
3233
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.1" />
34+
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="2.0.1" />
3335
</ItemGroup>
3436

3537
<ItemGroup>

test/TestDummies/DummyLoggerConfigurationExtensions.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
using Serilog.Core;
77
using TestDummies.Console;
88
using TestDummies.Console.Themes;
9+
using Microsoft.Extensions.Configuration;
10+
using System.Collections.Generic;
911

1012
namespace TestDummies
1113
{
@@ -35,6 +37,25 @@ public static LoggerConfiguration DummyRollingFile(
3537
return loggerSinkConfiguration.Sink(new DummyRollingFileSink(), restrictedToMinimumLevel);
3638
}
3739

40+
public static LoggerConfiguration DummyRollingFile(
41+
this LoggerSinkConfiguration loggerSinkConfiguration,
42+
IConfiguration appConfiguration,
43+
IConfigurationSection configurationSection,
44+
string pathFormat,
45+
LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum)
46+
{
47+
return loggerSinkConfiguration.Sink(new DummyRollingFileSink(), restrictedToMinimumLevel);
48+
}
49+
50+
public static LoggerConfiguration DummyRollingFile(
51+
this LoggerSinkConfiguration loggerSinkConfiguration,
52+
List<string> objectBinding,
53+
string pathFormat,
54+
LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum)
55+
{
56+
return loggerSinkConfiguration.Sink(new DummyRollingFileSink(), restrictedToMinimumLevel);
57+
}
58+
3859
public static LoggerConfiguration DummyRollingFile(
3960
this LoggerAuditSinkConfiguration loggerSinkConfiguration,
4061
string pathFormat,

test/TestDummies/TestDummies.csproj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,14 @@
1616
<PackageReference Include="Serilog" Version="2.6.0" />
1717
</ItemGroup>
1818

19+
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
20+
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="2.0.1" />
21+
</ItemGroup>
22+
1923
<ItemGroup Condition=" '$(TargetFramework)' == 'net452' ">
2024
<Reference Include="System" />
2125
<Reference Include="Microsoft.CSharp" />
26+
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="1.1.2" />
2227
</ItemGroup>
2328

2429
</Project>

0 commit comments

Comments
 (0)