Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Failing test for #142 #145

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,7 @@ public void SinkWithIConfigurationArguments()
""Serilog"": {
""Using"": [""TestDummies""],
""WriteTo"": [{
""Name"": ""DummyRollingFile"",
""Name"": ""DummyWithConfiguration"",
""Args"": {""pathFormat"" : ""C:\\"",
""configurationSection"" : { ""foo"" : ""bar"" } }
}]
Expand All @@ -435,14 +435,17 @@ public void SinkWithIConfigurationArguments()
// IConfiguration and IConfigurationSection arguments do not have
// default values so they will throw if they are not populated


DummyConfigurationSink.Reset();
var log = ConfigFromJson(json)
.CreateLogger();

DummyRollingFileSink.Reset();

log.Write(Some.InformationEvent());

Assert.Equal(1, DummyRollingFileSink.Emitted.Count);
Assert.NotNull(DummyConfigurationSink.Configuration);
Assert.NotNull(DummyConfigurationSink.ConfigSection);
Assert.Equal("bar", DummyConfigurationSink.ConfigSection["foo"]);
}

[Fact]
Expand Down
46 changes: 46 additions & 0 deletions test/TestDummies/DummyConfigurationSink.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using Microsoft.Extensions.Configuration;
using Serilog.Core;
using Serilog.Events;

namespace TestDummies
{
public class DummyConfigurationSink : ILogEventSink
{
[ThreadStatic]
static List<LogEvent> _emitted;

[ThreadStatic]
static IConfiguration _configuration;

[ThreadStatic]
static IConfigurationSection _configSection;

public static List<LogEvent> Emitted => _emitted ?? (_emitted = new List<LogEvent>());

public static IConfiguration Configuration => _configuration;

public static IConfigurationSection ConfigSection => _configSection;


public DummyConfigurationSink(IConfiguration configuration, IConfigurationSection configSection)
{
_configuration = configuration;
_configSection = configSection;
}

public void Emit(LogEvent logEvent)
{
Emitted.Add(logEvent);
}

public static void Reset()
{
_emitted = null;
_configuration = null;
_configSection = null;
}

}
}
4 changes: 2 additions & 2 deletions test/TestDummies/DummyLoggerConfigurationExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,14 @@ public static LoggerConfiguration DummyRollingFile(
return loggerSinkConfiguration.Sink(new DummyRollingFileSink(), restrictedToMinimumLevel);
}

public static LoggerConfiguration DummyRollingFile(
public static LoggerConfiguration DummyWithConfiguration(
this LoggerSinkConfiguration loggerSinkConfiguration,
IConfiguration appConfiguration,
IConfigurationSection configurationSection,
string pathFormat,
LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum)
{
return loggerSinkConfiguration.Sink(new DummyRollingFileSink(), restrictedToMinimumLevel);
return loggerSinkConfiguration.Sink(new DummyConfigurationSink(appConfiguration, configurationSection), restrictedToMinimumLevel);
}

public static LoggerConfiguration DummyRollingFile(
Expand Down