public async Task ShouldUseScopeWithParameter() { // Arrange // Act await _factory.CreateDefaultClient().GetAsync("/"); // Assert var log = Assert.Single(_factory.GetSerilogTestLoggerSink().LogEntries); // Assert specific parameters in the log entry itself, as Serilog puts the scope parameters on the log entry LoggingAssert.Contains("name", "GET", log.Properties); }
public async Task ShouldLogWithWorldAsPlace() { // Arrange // Act await _factory.CreateDefaultClient().GetAsync("/"); // Assert var log = Assert.Single(_factory.GetSerilogTestLoggerSink().LogEntries); // Assert specific parameters in the log entry LoggingAssert.Contains("place", "World", log.Properties); }
public async Task ShouldBeginScopeWithParameter() { // Arrange // Act await _factory.CreateDefaultClient().GetAsync("/"); // Assert var scope = Assert.Single(_factory.GetTestLoggerSink().Scopes); // Assert specific parameters in the log scope LoggingAssert.Contains("name", "GET", scope.Properties); }
public async Task ShouldUseDictionaryScope() { // Arrange // Act await _factory.CreateDefaultClient().GetAsync("/dictionaryScope"); // Assert var log = Assert.Single(_factory.GetSerilogTestLoggerSink().LogEntries); // If the scope is a dictionary, it will only add the properties, not a scope Assert.Empty(log.Scopes); LoggingAssert.Contains("foo", "bar", log.Properties); LoggingAssert.Contains("answer", 42, log.Properties); }
public void DoSomethingLogsCorrectParameter() { // Arrange var loggerFactory = TestLoggerFactory.Create(); var logger = loggerFactory.CreateLogger <Sample>(); var sample = new Sample(logger); // Act sample.DoSomething(); // Assert var log = Assert.Single(loggerFactory.Sink.LogEntries); // Assert specific parameters in the log entry LoggingAssert.Contains("number", 42, log.Properties); }
public void UseScopeLogsCorrectParameters() { // Arrange var loggerFactory = TestLoggerFactory.Create(); var sampleLogger = loggerFactory.CreateLogger <Sample>(); var moreLogger = loggerFactory.CreateLogger <More>(); var more = new More(new Sample(sampleLogger), moreLogger); // Act more.UseScope(); // Assert var scope = Assert.Single(loggerFactory.Sink.Scopes); // Assert specific parameters in the log entry LoggingAssert.Contains("number", 42, scope.Properties); }
public void DoEvenMoreLogsCorrectParameters() { // Arrange var loggerFactory = TestLoggerFactory.Create(); var sampleLogger = loggerFactory.CreateLogger <Sample>(); var moreLogger = loggerFactory.CreateLogger <More>(); var more = new More(new Sample(sampleLogger), moreLogger); // Act more.DoEvenMore(); // Assert var log = Assert.Single(loggerFactory.Sink.LogEntries); // Assert specific parameters in the log entry LoggingAssert.Contains("number", 42, log.Properties); LoggingAssert.Contains("foo", "bar", log.Properties); }
public async Task ShouldLogWithMultipleValuesForPlace() { // Arrange // Act await _factory.CreateDefaultClient().GetAsync("/?multipleValues=1"); // Assert var log = Assert.Single(_factory.GetTestLoggerSink().LogEntries); // Assert specific parameters in the log entry LoggingAssert.Contains("place", "World", log.Properties); LoggingAssert.Contains("place", "Universe", log.Properties); // or LoggingAssert.Contains(new[] { new KeyValuePair <string, object> ("place", "World"), new KeyValuePair <string, object> ("place", "Universe") }, log.Properties); }
public void TraceLogsMessageWithScope() { // Arrange var loggerFactory = TestLoggerFactory.Create(); var sampleLogger = loggerFactory.CreateLogger <Sample>(); var moreLogger = loggerFactory.CreateLogger <More>(); var more = new More(new Sample(sampleLogger), moreLogger); // Act more.Trace(); // Assert var log = Assert.Single(loggerFactory.Sink.LogEntries); Assert.Equal("This log entry is at trace level", log.Message); LoggingAssert.Contains("level", "trace", log.Properties); var scope = Assert.Single(log.Scopes); LoggingAssert.Contains("foo", "bar", scope.Properties); }
public void DoExceptionalLogsException() { // Arrange var loggerFactory = TestLoggerFactory.Create(); var logger = loggerFactory.CreateLogger <Sample>(); var sample = new Sample(logger); // Act sample.DoExceptional(); // Assert var log = Assert.Single(loggerFactory.Sink.LogEntries); // Assert the message rendered by a default formatter Assert.Equal("There was a problem", log.Message); // Assert specific parameters in the log entry LoggingAssert.Contains("error", "problem", log.Properties); // Assert the exception var exception = Assert.IsType <ArgumentNullException>(log.Exception); Assert.Equal("foo", exception.ParamName); }
public static void Contains( IEnumerable <KeyValuePair <string, object> > expectedValues, IEnumerable <KeyValuePair <string, object> > actualValues) => LoggingAssert.Contains(expectedValues, actualValues);
public static void Contains( string key, object value, IEnumerable <KeyValuePair <string, object> > actualValues) => LoggingAssert.Contains(key, value, actualValues);