Skip to content

Commit 48b6587

Browse files
author
Colin Young
committed
Add test for default standard column names
1 parent e907d17 commit 48b6587

File tree

2 files changed

+36
-12
lines changed

2 files changed

+36
-12
lines changed
Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System;
2+
using System.Collections.Generic;
23
using System.Data.SqlClient;
3-
using System.Diagnostics;
44
using System.Linq;
55
using Dapper;
66
using Xunit;
@@ -10,16 +10,12 @@ namespace Serilog.Sinks.MSSqlServer.Tests
1010
{
1111
public class CustomStandardColumnNames : IClassFixture<DatabaseFixture>
1212
{
13-
public class InfoSchema
14-
{
15-
public string ColumnName { get; set; }
16-
}
17-
1813
[Fact]
1914
public void TableCreatedWithCustomNames()
2015
{
2116
// arrange
2217
var options = new ColumnOptions();
18+
var standardNames = new List<string> { "CustomMessage", "CustomMessageTemplate", "CustomLevel", "CustomTimeStamp", "CustomException", "CustomProperties" };
2319

2420
options.Store.ToList().ForEach(c =>
2521
{
@@ -28,26 +24,47 @@ public void TableCreatedWithCustomNames()
2824
});
2925

3026
// act
31-
var sink = new MSSqlServerSink(DatabaseFixture.LogEventsConnectionString, DatabaseFixture.LogTableName, 1, TimeSpan.FromSeconds(1), null, true, options);
27+
var logTableName = $"{DatabaseFixture.LogTableName}Custom";
28+
var sink = new MSSqlServerSink(DatabaseFixture.LogEventsConnectionString, logTableName, 1, TimeSpan.FromSeconds(1), null, true, options);
3229

3330
// assert
3431
using (var conn = new SqlConnection(DatabaseFixture.MasterConnectionString))
3532
{
3633
conn.Execute($"use {DatabaseFixture.Database}");
37-
var logEvents = conn.Query<InfoSchema>($@"SELECT COLUMN_NAME AS ColumnName FROM {DatabaseFixture.Database}.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{DatabaseFixture.LogTableName}'");
38-
var infoSchemata = logEvents as InfoSchema[] ?? logEvents.ToArray();
34+
var logEvents = conn.Query<InfoSchema>($@"SELECT COLUMN_NAME AS ColumnName FROM {DatabaseFixture.Database}.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{logTableName}'");
35+
var infoSchema = logEvents as InfoSchema[] ?? logEvents.ToArray();
3936

40-
foreach (var column in options.Store.Values)
37+
foreach (var column in standardNames)
4138
{
42-
infoSchemata.Should().Contain(columns => columns.ColumnName == column);
39+
infoSchema.Should().Contain(columns => columns.ColumnName == column);
4340
}
4441
}
4542
}
4643

4744
[Fact]
4845
public void TableCreatedWithDefaultNames()
4946
{
50-
47+
// arrange
48+
var options = new ColumnOptions();
49+
var standardNames = new List<string> { "Message", "MessageTemplate", "Level", "TimeStamp", "Exception", "Properties" };
50+
51+
// act
52+
var logTableName = $"{DatabaseFixture.LogTableName}Standard";
53+
System.Diagnostics.Debugger.Launch();
54+
var sink = new MSSqlServerSink(DatabaseFixture.LogEventsConnectionString, logTableName, 1, TimeSpan.FromSeconds(1), null, true, options);
55+
56+
// assert
57+
using (var conn = new SqlConnection(DatabaseFixture.MasterConnectionString))
58+
{
59+
conn.Execute($"use {DatabaseFixture.Database}");
60+
var logEvents = conn.Query<InfoSchema>($@"SELECT COLUMN_NAME AS ColumnName FROM {DatabaseFixture.Database}.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{logTableName}'");
61+
var infoSchema = logEvents as InfoSchema[] ?? logEvents.ToArray();
62+
63+
foreach (var column in standardNames)
64+
{
65+
infoSchema.Should().Contain(columns => columns.ColumnName == column);
66+
}
67+
}
5168
}
5269
}
5370
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace Serilog.Sinks.MSSqlServer.Tests
2+
{
3+
public class InfoSchema
4+
{
5+
public string ColumnName { get; set; }
6+
}
7+
}

0 commit comments

Comments
 (0)