Skip to content

Commit eb04a97

Browse files
committed
First test for SqlCreateTableWriter.
1 parent 4634355 commit eb04a97

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using Serilog.Sinks.MSSqlServer.Platform;
2+
using System.Data;
3+
using Xunit;
4+
5+
namespace Serilog.Sinks.MSSqlServer.Tests.Sinks.MSSqlServer.Platform
6+
{
7+
[Collection("LogTest")]
8+
public class SqlCreateTableWriterTests
9+
{
10+
private readonly SqlCreateTableWriter _sut;
11+
12+
public SqlCreateTableWriterTests()
13+
{
14+
_sut = new SqlCreateTableWriter();
15+
}
16+
17+
[Fact]
18+
public void GetSqlFromDataTableWritesCorrectSchemaNameAndTableName()
19+
{
20+
// Arrange
21+
const string schemaName = "TestSchemaName";
22+
const string tableName = "TestTableName";
23+
string expectedResult = $"IF(NOT EXISTS(SELECT * FROM sys.schemas WHERE name = '{schemaName}'))\r\n"
24+
+ $"BEGIN\r\nEXEC('CREATE SCHEMA [{schemaName}] AUTHORIZATION [dbo]')\r\nEND\r\n"
25+
+ $"IF NOT EXISTS (SELECT s.name, t.name FROM sys.tables t JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE s.name = '{schemaName}' AND t.name = '{tableName}')\r\n"
26+
+ $"BEGIN\r\nCREATE TABLE [{schemaName}].[{tableName}] ( \r\n CONSTRAINT [PK_{tableName}] PRIMARY KEY CLUSTERED ([Id])\r\n);\r\nEND\r\n";
27+
28+
// Act
29+
var result = _sut.GetSqlFromDataTable(schemaName, tableName, new DataTable(), new Serilog.Sinks.MSSqlServer.ColumnOptions());
30+
31+
// Assert
32+
Assert.Equal(expectedResult, result);
33+
}
34+
}
35+
}

0 commit comments

Comments
 (0)