Skip to content

Commit bce1057

Browse files
author
Colin Young
committed
Adding tests for custom Id column name.
1 parent aa93ba3 commit bce1057

File tree

1 file changed

+47
-2
lines changed

1 file changed

+47
-2
lines changed

test/Serilog.Sinks.MSSqlServer.Tests/CustomStandardColumnNames.cs

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,50 @@ namespace Serilog.Sinks.MSSqlServer.Tests
1010
{
1111
public class CustomStandardColumnNames : IClassFixture<DatabaseFixture>
1212
{
13+
[Fact]
14+
public void CustomIdColumn()
15+
{
16+
// arrange
17+
var options = new ColumnOptions();
18+
var customIdName = "CustomIdName";
19+
options.Id.ColumnName = customIdName;
20+
21+
// act
22+
var logTableName = $"{DatabaseFixture.LogTableName}CustomId";
23+
var sink = new MSSqlServerSink(DatabaseFixture.LogEventsConnectionString, logTableName, 1, TimeSpan.FromSeconds(1), null, true, options);
24+
25+
// assert
26+
using (var conn = new SqlConnection(DatabaseFixture.MasterConnectionString))
27+
{
28+
conn.Execute($"use {DatabaseFixture.Database}");
29+
var logEvents = conn.Query<InfoSchema>($@"SELECT COLUMN_NAME AS ColumnName FROM {DatabaseFixture.Database}.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{logTableName}'");
30+
var infoSchema = logEvents as InfoSchema[] ?? logEvents.ToArray();
31+
32+
infoSchema.Should().Contain(columns => columns.ColumnName == customIdName);
33+
}
34+
}
35+
36+
[Fact]
37+
public void DefaultIdColumn()
38+
{
39+
// arrange
40+
var options = new ColumnOptions();
41+
42+
// act
43+
var logTableName = $"{DatabaseFixture.LogTableName}DefaultId";
44+
var sink = new MSSqlServerSink(DatabaseFixture.LogEventsConnectionString, logTableName, 1, TimeSpan.FromSeconds(1), null, true, options);
45+
46+
// assert
47+
using (var conn = new SqlConnection(DatabaseFixture.MasterConnectionString))
48+
{
49+
conn.Execute($"use {DatabaseFixture.Database}");
50+
var logEvents = conn.Query<InfoSchema>($@"SELECT COLUMN_NAME AS ColumnName FROM {DatabaseFixture.Database}.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{logTableName}'");
51+
var infoSchema = logEvents as InfoSchema[] ?? logEvents.ToArray();
52+
53+
infoSchema.Should().Contain(columns => columns.ColumnName == "Id");
54+
}
55+
}
56+
1357
[Fact]
1458
public void TableCreatedWithCustomNames()
1559
{
@@ -38,6 +82,8 @@ public void TableCreatedWithCustomNames()
3882
{
3983
infoSchema.Should().Contain(columns => columns.ColumnName == column);
4084
}
85+
86+
infoSchema.Should().Contain(columns => columns.ColumnName == "Id");
4187
}
4288
}
4389

@@ -49,8 +95,7 @@ public void TableCreatedWithDefaultNames()
4995
var standardNames = new List<string> { "Message", "MessageTemplate", "Level", "TimeStamp", "Exception", "Properties" };
5096

5197
// act
52-
var logTableName = $"{DatabaseFixture.LogTableName}Standard";
53-
System.Diagnostics.Debugger.Launch();
98+
var logTableName = $"{DatabaseFixture.LogTableName}DefaultStandard";
5499
var sink = new MSSqlServerSink(DatabaseFixture.LogEventsConnectionString, logTableName, 1, TimeSpan.FromSeconds(1), null, true, options);
55100

56101
// assert

0 commit comments

Comments
 (0)