Skip to content

Commit cbcd22b

Browse files
committed
Add unit tests for OutputTemplateRenderer for new UtcTimestamp token (TDD)
Addresses #164
1 parent 828e6d5 commit cbcd22b

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

test/Serilog.Sinks.Console.Tests/Output/OutputTemplateRendererTests.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,4 +400,28 @@ public void TraceAndSpanAreIncludedWhenPresent()
400400
formatter.Format(evt, sw);
401401
Assert.Equal($"{traceId}/{spanId}", sw.ToString());
402402
}
403+
404+
[Fact]
405+
public void TimestampTokenRendersLocalTime()
406+
{
407+
var logTimestampWithTimeZoneOffset = DateTimeOffset.Parse("2024-09-03T14:15:16.079+02:00", CultureInfo.InvariantCulture);
408+
var formatter = new OutputTemplateRenderer(ConsoleTheme.None, "{Timestamp:yyyy-MM-dd HH:mm:ss}", CultureInfo.InvariantCulture);
409+
var evt = new LogEvent(logTimestampWithTimeZoneOffset, LogEventLevel.Information, null, MessageTemplate.Empty, Array.Empty<LogEventProperty>());
410+
var sw = new StringWriter();
411+
formatter.Format(evt, sw);
412+
// expect time in local time, unchanged from the input, the +02:00 offset should not affect the output
413+
Assert.Equal("2024-09-03 14:15:16", sw.ToString());
414+
}
415+
416+
[Fact]
417+
public void UtcTimestampTokenRendersUtcTime()
418+
{
419+
var logTimestampWithTimeZoneOffset = DateTimeOffset.Parse("2024-09-03T14:15:16.079+02:00", CultureInfo.InvariantCulture);
420+
var formatter = new OutputTemplateRenderer(ConsoleTheme.None, "{UtcTimestamp:yyyy-MM-dd HH:mm:ss}", CultureInfo.InvariantCulture);
421+
var evt = new LogEvent(logTimestampWithTimeZoneOffset, LogEventLevel.Information, null, MessageTemplate.Empty, Array.Empty<LogEventProperty>());
422+
var sw = new StringWriter();
423+
formatter.Format(evt, sw);
424+
// expect time in UTC, the +02:00 offset must be applied to adjust the hour
425+
Assert.Equal("2024-09-03 12:15:16", sw.ToString());
426+
}
403427
}

0 commit comments

Comments
 (0)