Skip to content

Commit d2e4d58

Browse files
committed
chore: review test definition
1 parent c3ccc64 commit d2e4d58

File tree

7 files changed

+66
-16
lines changed

7 files changed

+66
-16
lines changed

src/Serilog.Ui.SqliteDataProvider/Extensions/SerilogUiOptionBuilderExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static ISerilogUiOptionsBuilder UseSqliteServer(
1818
this ISerilogUiOptionsBuilder optionsBuilder,
1919
Action<RelationalDbOptions> setupOptions)
2020
{
21-
var dbOptions = new SqliteDbOptions(string.Empty);
21+
var dbOptions = new SqliteDbOptions();
2222
setupOptions(dbOptions);
2323
dbOptions.Validate();
2424

src/Serilog.Ui.SqliteDataProvider/Extensions/SqliteDbOptions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace Serilog.Ui.SqliteDataProvider.Extensions;
66

7-
public class SqliteDbOptions(string defaultSchemaName) : RelationalDbOptions(defaultSchemaName)
7+
public class SqliteDbOptions() : RelationalDbOptions("ununsed")
88
{
99
public SinkColumnNames ColumnNames { get; } = new SqliteSinkColumnNames();
1010
}

tests/Serilog.Ui.SqliteProvider.Tests/DataProvider/DataProviderBaseTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public void It_throws_when_any_dependency_is_null()
3030
public Task It_logs_and_throws_when_db_read_breaks_down()
3131
{
3232
var sut = new SqliteDataProvider(
33-
new SqliteDbOptions(string.Empty).WithConnectionString("connString").WithTable("Logs"),
33+
new SqliteDbOptions().WithConnectionString("connString").WithTable("Logs"),
3434
new SqliteQueryBuilder()
3535
);
3636

tests/Serilog.Ui.SqliteProvider.Tests/DataProvider/DataProviderSearchTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55

66
namespace Sqlite.Tests.DataProvider;
77

8-
[Collection(nameof(SqliteDataProvider))]
8+
[Collection(nameof(SqliteTestProvider))]
99
[Trait("Integration-Search", "Sqlite")]
1010
public class DataProviderSearchTest(SqliteTestProvider instance) : IntegrationSearchTests<SqliteTestProvider>(instance);

tests/Serilog.Ui.SqliteProvider.Tests/Extensions/SerilogUiOptionBuilderExtensionsTest.cs

Lines changed: 49 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
using FluentAssertions;
22
using Microsoft.Extensions.DependencyInjection;
33
using Serilog.Ui.Core;
4+
using Serilog.Ui.Core.Extensions;
5+
using Serilog.Ui.Core.Models.Options;
46
using Serilog.Ui.SqliteDataProvider;
5-
using Serilog.Ui.Web;
7+
using Serilog.Ui.SqliteDataProvider.Extensions;
8+
using Serilog.Ui.Web.Extensions;
69
using System;
710
using System.Collections.Generic;
11+
using System.Linq;
812
using Xunit;
913

10-
namespace MySql.Tests.Extensions
14+
namespace Sqlite.Tests.Extensions
1115
{
1216
[Trait("DI-DataProvider", "Sqlite")]
1317
public class SerilogUiOptionBuilderExtensionsTest
@@ -22,9 +26,9 @@ public SerilogUiOptionBuilderExtensionsTest()
2226
[Fact]
2327
public void It_registers_provider_and_dependencies()
2428
{
25-
serviceCollection.AddSerilogUi((builder) =>
29+
serviceCollection.AddSerilogUi(builder =>
2630
{
27-
builder.UseSqliteServer("https://mysqlserver.example.com", "my-table");
31+
builder.UseSqliteServer(opt => opt.WithConnectionString("https://sqliteserver.example.com").WithTable("my-table"));
2832
});
2933
var services = serviceCollection.BuildServiceProvider();
3034

@@ -35,17 +39,52 @@ public void It_registers_provider_and_dependencies()
3539
provider.Should().NotBeNull().And.BeOfType<SqliteDataProvider>();
3640
}
3741

42+
[Fact]
43+
public void It_registers_multiple_providers()
44+
{
45+
serviceCollection.AddSerilogUi(builder =>
46+
{
47+
builder.UseSqliteServer(opt => opt.WithConnectionString("https://sqliteserver.example.com").WithTable("my-table"));
48+
builder.UseSqliteServer(opt => opt.WithConnectionString("https://sqliteserver2.example.com").WithTable("my-table2"));
49+
});
50+
51+
var serviceProvider = serviceCollection.BuildServiceProvider();
52+
using var scope = serviceProvider.CreateScope();
53+
54+
var providers = scope.ServiceProvider.GetServices<IDataProvider>().ToList();
55+
providers.Should().HaveCount(2).And.AllBeOfType<SqliteDataProvider>();
56+
providers.Select(p => p.Name).Should().OnlyHaveUniqueItems();
57+
58+
var providersOptions = serviceProvider.GetRequiredService<ProvidersOptions>();
59+
providersOptions.DisabledSortProviderNames.Should().BeEmpty();
60+
providersOptions.ExceptionAsStringProviderNames.Should().BeEmpty();
61+
}
62+
3863
[Fact]
3964
public void It_throws_on_invalid_registration()
4065
{
4166
var nullables = new List<Func<IServiceCollection>>
4267
{
43-
() => serviceCollection.AddSerilogUi((builder) => builder.UseSqliteServer(null, "name")),
44-
() => serviceCollection.AddSerilogUi((builder) => builder.UseSqliteServer(" ", "name")),
45-
() => serviceCollection.AddSerilogUi((builder) => builder.UseSqliteServer("", "name")),
46-
() => serviceCollection.AddSerilogUi((builder) => builder.UseSqliteServer("name", null)),
47-
() => serviceCollection.AddSerilogUi((builder) => builder.UseSqliteServer("name", " ")),
48-
() => serviceCollection.AddSerilogUi((builder) => builder.UseSqliteServer("name", "")),
68+
() => serviceCollection.AddSerilogUi((builder) => builder.UseSqliteServer(_ => {})),
69+
() => serviceCollection.AddSerilogUi(builder => builder.UseSqliteServer(opt =>
70+
opt.WithConnectionString(null!).WithTable("my-table"))),
71+
() => serviceCollection.AddSerilogUi(builder => builder.UseSqliteServer(opt =>
72+
opt.WithConnectionString(" ").WithTable("my-table"))),
73+
() => serviceCollection.AddSerilogUi(builder => builder.UseSqliteServer(opt =>
74+
opt.WithConnectionString(string.Empty).WithTable("my-table"))),
75+
() => serviceCollection.AddSerilogUi(builder => builder.UseSqliteServer(opt =>
76+
opt.WithConnectionString("name").WithTable(null!))),
77+
() => serviceCollection.AddSerilogUi(builder => builder.UseSqliteServer(opt =>
78+
opt.WithConnectionString("name").WithTable(" "))),
79+
() => serviceCollection.AddSerilogUi(builder => builder.UseSqliteServer(opt =>
80+
opt.WithConnectionString("name").WithTable(string.Empty))),
81+
// if user sets an invalid schema, default value will be overridden an validation should fail
82+
() => serviceCollection.AddSerilogUi(builder =>
83+
builder.UseSqliteServer(opt => opt.WithConnectionString("conn").WithTable("ok").WithSchema(null!))),
84+
() => serviceCollection.AddSerilogUi(builder =>
85+
builder.UseSqliteServer(opt => opt.WithConnectionString("conn").WithTable("ok").WithSchema(" "))),
86+
() => serviceCollection.AddSerilogUi(builder =>
87+
builder.UseSqliteServer(opt => opt.WithConnectionString("conn").WithTable("ok").WithSchema(string.Empty))),
4988
};
5089

5190
foreach (var nullable in nullables)

tests/Serilog.Ui.SqliteProvider.Tests/Serilog.Ui.SqliteProvider.Tests.csproj

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,18 @@
77

88
<ItemGroup>
99
<PackageReference Include="Serilog.Sinks.SQLite" Version="6.0.0" />
10-
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.8" />
10+
</ItemGroup>
11+
12+
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
13+
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.*"/>
14+
</ItemGroup>
15+
16+
<ItemGroup Condition="'$(TargetFramework)' == 'net7.0'">
17+
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="7.0.*"/>
18+
</ItemGroup>
19+
20+
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
21+
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.*"/>
1122
</ItemGroup>
1223

1324
<ItemGroup>

tests/Serilog.Ui.SqliteProvider.Tests/Util/SqliteTestProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public SqliteTestProvider() : base()
2828
// No need to set up a container for SQLite - using in-memory database
2929
}
3030

31-
public SqliteDbOptions DbOptions { get; set; } = new SqliteDbOptions(string.Empty).WithTable("Logs");
31+
public SqliteDbOptions DbOptions { get; set; } = new SqliteDbOptions().WithTable("Logs");
3232

3333
private async Task CheckDbReadinessAsync()
3434
{

0 commit comments

Comments
 (0)