Skip to content

Commit aca190b

Browse files
authored
Merge pull request #248 from ckadluba/refactoring-cleanup-tests
Refactoring cleanup tests
2 parents c7e6dff + 34c2862 commit aca190b

File tree

6 files changed

+141
-3
lines changed

6 files changed

+141
-3
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>netcoreapp3.1</TargetFramework>
6+
</PropertyGroup>
7+
8+
<ItemGroup>
9+
<Content Include="appsettings.json">
10+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
11+
</Content>
12+
</ItemGroup>
13+
14+
<ItemGroup>
15+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.3" />
16+
</ItemGroup>
17+
18+
<ItemGroup>
19+
<ProjectReference Include="..\..\src\Serilog.Sinks.MSSqlServer\Serilog.Sinks.MSSqlServer.csproj" />
20+
</ItemGroup>
21+
22+
</Project>

sample/CombinedConfigDemo/Program.cs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
using Microsoft.Extensions.Configuration;
2+
using Serilog;
3+
using System;
4+
using System.Threading;
5+
6+
namespace CombinedConfigDemo
7+
{
8+
// This sample app reads connection string and column options from appsettings.json
9+
// while schema name, table name and autoCreateSqlTable are supplied programmatically
10+
// as parameters to the MSSqlServer() method.
11+
public static class Program
12+
{
13+
const string _connectionStringName = "LogDatabase";
14+
const string _schemaName = "dbo";
15+
const string _tableName = "LogEvents";
16+
17+
public static void Main()
18+
{
19+
var configuration = new ConfigurationBuilder()
20+
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
21+
.Build();
22+
var columnOptionsSection = configuration.GetSection("Serilog:ColumnOptions");
23+
24+
Log.Logger = new LoggerConfiguration()
25+
.WriteTo.MSSqlServer(
26+
connectionString: _connectionStringName,
27+
tableName: _tableName,
28+
appConfiguration: configuration,
29+
autoCreateSqlTable: true,
30+
columnOptionsSection: columnOptionsSection,
31+
schemaName: _schemaName)
32+
.CreateLogger();
33+
34+
Log.Information("Hello {Name} from thread {ThreadId}", Environment.GetEnvironmentVariable("USERNAME"), Thread.CurrentThread.ManagedThreadId);
35+
36+
Log.Warning("No coins remain at position {@Position}", new { Lat = 25, Long = 134 });
37+
38+
Log.CloseAndFlush();
39+
}
40+
}
41+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"Logging": {
3+
"LogLevel": {
4+
"Default": "Information",
5+
"Microsoft": "Warning",
6+
"Microsoft.Hosting.Lifetime": "Information"
7+
}
8+
},
9+
"ConnectionStrings": {
10+
"LogDatabase": "Server=localhost;Database=LogTest;Integrated Security=SSPI;"
11+
},
12+
"Serilog": {
13+
"ColumnOptions": {
14+
"addStandardColumns": [ "LogEvent" ],
15+
"removeStandardColumns": [ "MessageTemplate", "Properties" ],
16+
"timeStamp": {
17+
"columnName": "Timestamp",
18+
"convertToUtc": false
19+
}
20+
}
21+
}
22+
}

serilog-sinks-mssqlserver.sln

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CustomLogEventFormatterDemo
2525
EndProject
2626
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppConfigDemo", "sample\AppConfigDemo\AppConfigDemo.csproj", "{7DC530B1-68FD-4F07-A2F9-910C338562C1}"
2727
EndProject
28-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkerServiceDemo", "sample\WorkerServiceDemo\WorkerServiceDemo.csproj", "{04F523D9-F00B-4C63-9287-31A244378E06}"
28+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WorkerServiceDemo", "sample\WorkerServiceDemo\WorkerServiceDemo.csproj", "{04F523D9-F00B-4C63-9287-31A244378E06}"
29+
EndProject
30+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CombinedConfigDemo", "sample\CombinedConfigDemo\CombinedConfigDemo.csproj", "{98F21125-AF7A-46E8-8C08-E3E4F5DBEDB9}"
2931
EndProject
3032
Global
3133
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -53,6 +55,10 @@ Global
5355
{04F523D9-F00B-4C63-9287-31A244378E06}.Debug|Any CPU.Build.0 = Debug|Any CPU
5456
{04F523D9-F00B-4C63-9287-31A244378E06}.Release|Any CPU.ActiveCfg = Release|Any CPU
5557
{04F523D9-F00B-4C63-9287-31A244378E06}.Release|Any CPU.Build.0 = Release|Any CPU
58+
{98F21125-AF7A-46E8-8C08-E3E4F5DBEDB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
59+
{98F21125-AF7A-46E8-8C08-E3E4F5DBEDB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
60+
{98F21125-AF7A-46E8-8C08-E3E4F5DBEDB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
61+
{98F21125-AF7A-46E8-8C08-E3E4F5DBEDB9}.Release|Any CPU.Build.0 = Release|Any CPU
5662
EndGlobalSection
5763
GlobalSection(SolutionProperties) = preSolution
5864
HideSolutionNode = FALSE
@@ -63,6 +69,7 @@ Global
6369
{873320F1-8F6D-45E2-A853-D321C86793EC} = {AA346332-5BAF-47F1-B8FB-7600ED61265D}
6470
{7DC530B1-68FD-4F07-A2F9-910C338562C1} = {AA346332-5BAF-47F1-B8FB-7600ED61265D}
6571
{04F523D9-F00B-4C63-9287-31A244378E06} = {AA346332-5BAF-47F1-B8FB-7600ED61265D}
72+
{98F21125-AF7A-46E8-8C08-E3E4F5DBEDB9} = {AA346332-5BAF-47F1-B8FB-7600ED61265D}
6673
EndGlobalSection
6774
GlobalSection(ExtensibilityGlobals) = postSolution
6875
SolutionGuid = {AAA6BF8D-7B53-4A5F-A79A-D1B306383B45}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
using Microsoft.Extensions.Configuration;
2+
using Moq;
3+
using Serilog.Sinks.MSSqlServer.Configuration;
4+
using Xunit;
5+
6+
namespace Serilog.Sinks.MSSqlServer.Tests.Configuration.Implementations.Microsoft.Extensions.Configuration
7+
{
8+
public class MicrosoftExtensionsConnectionStringProviderTests
9+
{
10+
[Fact]
11+
public void GetConnectionStringCalledWithConnectionStringReturnsSameValue()
12+
{
13+
// Arrange
14+
const string connectionString = "Server=localhost;Database=LogTest;Integrated Security=SSPI;";
15+
var configurationMock = new Mock<IConfiguration>();
16+
var sut = new MicrosoftExtensionsConnectionStringProvider();
17+
18+
// Act
19+
var result = sut.GetConnectionString(connectionString, configurationMock.Object);
20+
21+
// Assert
22+
Assert.Equal(connectionString, result);
23+
}
24+
25+
[Fact]
26+
public void GetConnectionStringCalledWithNameItGetsConnectionStringFromConfig()
27+
{
28+
// Arrange
29+
const string connectionStringName = "LogDatabase";
30+
const string connectionString = "Server=localhost;Database=LogTest;Integrated Security=SSPI;";
31+
var configurationMock = new Mock<IConfiguration>();
32+
var configSectionMock = new Mock<IConfigurationSection>();
33+
configurationMock.Setup(c => c.GetSection(It.IsAny<string>())).Returns(configSectionMock.Object);
34+
configSectionMock.Setup(c => c[It.IsAny<string>()]).Returns(connectionString);
35+
var sut = new MicrosoftExtensionsConnectionStringProvider();
36+
37+
// Act
38+
var result = sut.GetConnectionString(connectionStringName, configurationMock.Object);
39+
40+
// Assert
41+
configurationMock.Verify(c => c.GetSection("ConnectionStrings"), Times.Once);
42+
configSectionMock.Verify(c => c[connectionStringName], Times.Once);
43+
Assert.Equal(connectionString, result);
44+
}
45+
}
46+
}

test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/Output/TestJsonLogEventFormatter.cs renamed to test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/Output/JsonLogEventFormatterTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99

1010
namespace Serilog.Sinks.MSSqlServer.Tests.Sinks.MSSqlServer.Output
1111
{
12-
public class TestJsonLogEventFormatter
12+
public class JsonLogEventFormatterTests
1313
{
1414
private Serilog.Sinks.MSSqlServer.ColumnOptions _testColumnOptions;
1515
private MSSqlServerSinkTraits _testTraits;
1616
private JsonLogEventFormatter _sut;
1717

18-
public TestJsonLogEventFormatter()
18+
public JsonLogEventFormatterTests()
1919
{
2020
SetupTest();
2121
}

0 commit comments

Comments
 (0)