Skip to content

Commit b6d7a92

Browse files
committed
fix(tests): Fix provider registration tests
1 parent 42a323f commit b6d7a92

File tree

4 files changed

+40
-8
lines changed

4 files changed

+40
-8
lines changed

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

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Serilog.Ui.Web;
66
using System;
77
using System.Collections.Generic;
8+
using System.Reflection;
89
using Xunit;
910

1011
namespace MsSql.Tests.Extensions
@@ -28,10 +29,19 @@ public void It_registers_provider_and_dependencies(string schemaName, string exp
2829
{
2930
builder.UseSqlServer("https://sqlserver.example.com", "my-table", schemaName);
3031
});
31-
var services = serviceCollection.BuildServiceProvider();
3232

33-
services.GetRequiredService<IDataProvider>().Should().NotBeNull().And.BeOfType<SqlServerDataProvider>();
34-
var options = services.GetRequiredService<RelationalDbOptions>();
33+
var serviceProvider = serviceCollection.BuildServiceProvider();
34+
using var scope = serviceProvider.CreateScope();
35+
36+
var provider = scope.ServiceProvider.GetService<IDataProvider>();
37+
provider.Should().NotBeNull().And.BeOfType<SqlServerDataProvider>();
38+
39+
var optionsField = typeof(SqlServerDataProvider)
40+
.GetField("_options", BindingFlags.NonPublic | BindingFlags.Instance)
41+
?? throw new InvalidOperationException("_options field is missing.");
42+
var options = (RelationalDbOptions)optionsField.GetValue(provider) ?? throw new InvalidOperationException("optionsField.GetValue(provider) returned null");
43+
44+
3545
options.Should().NotBeNull();
3646
options.ConnectionString.Should().Be("https://sqlserver.example.com");
3747
options.TableName.Should().Be("my-table");

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Serilog.Ui.Web;
66
using System;
77
using System.Collections.Generic;
8+
using System.Reflection;
89
using Xunit;
910

1011
namespace MySql.Tests.Extensions
@@ -28,8 +29,17 @@ public void It_registers_provider_and_dependencies()
2829
});
2930
var services = serviceCollection.BuildServiceProvider();
3031

31-
services.GetRequiredService<IDataProvider>().Should().NotBeNull().And.BeOfType<MySqlDataProvider>();
32-
var options = services.GetRequiredService<RelationalDbOptions>();
32+
var serviceProvider = serviceCollection.BuildServiceProvider();
33+
using var scope = serviceProvider.CreateScope();
34+
35+
var provider = scope.ServiceProvider.GetService<IDataProvider>();
36+
provider.Should().NotBeNull().And.BeOfType<MySqlDataProvider>();
37+
38+
var optionsField = typeof(MySqlDataProvider)
39+
.GetField("_options", BindingFlags.NonPublic | BindingFlags.Instance)
40+
?? throw new InvalidOperationException("_options field is missing.");
41+
var options = (RelationalDbOptions)optionsField.GetValue(provider) ?? throw new InvalidOperationException("optionsField.GetValue(provider) returned null");
42+
3343
options.Should().NotBeNull();
3444
options.ConnectionString.Should().Be("https://mysqlserver.example.com");
3545
options.TableName.Should().Be("my-table");

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

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
using Serilog.Ui.Web;
66
using System;
77
using System.Collections.Generic;
8+
using System.Linq;
9+
using System.Reflection;
810
using Xunit;
911

1012
namespace Postgres.Tests.Extensions
@@ -28,10 +30,18 @@ public void It_registers_provider_and_dependencies(string schemaName, string exp
2830
{
2931
builder.UseNpgSql("https://npgsql.example.com", "my-table", schemaName);
3032
});
31-
var services = serviceCollection.BuildServiceProvider();
3233

33-
services.GetRequiredService<IDataProvider>().Should().NotBeNull().And.BeOfType<PostgresDataProvider>();
34-
var options = services.GetRequiredService<RelationalDbOptions>();
34+
var serviceProvider = serviceCollection.BuildServiceProvider();
35+
using var scope = serviceProvider.CreateScope();
36+
37+
var provider = scope.ServiceProvider.GetService<IDataProvider>();
38+
provider.Should().NotBeNull().And.BeOfType<PostgresDataProvider>();
39+
40+
var optionsField = typeof(PostgresDataProvider)
41+
.GetField("_options", BindingFlags.NonPublic | BindingFlags.Instance)
42+
?? throw new InvalidOperationException("_options field is missing.");
43+
var options = (RelationalDbOptions) optionsField.GetValue(provider) ?? throw new InvalidOperationException("optionsField.GetValue(provider) returned null");
44+
3545
options.Should().NotBeNull();
3646
options.ConnectionString.Should().Be("https://npgsql.example.com");
3747
options.TableName.Should().Be("my-table");

tests/Serilog.Ui.Web.Tests/SerilogInMemoryDataProvider/SerilogInMemoryDataProvider.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ namespace Serilog.Ui.Web.Tests.SerilogInMemoryDataProvider;
1111

1212
public class SerilogInMemoryDataProvider : IDataProvider
1313
{
14+
public string Name => nameof(SerilogInMemoryDataProvider);
15+
1416
public Task<(IEnumerable<LogModel>, int)> FetchDataAsync(int page, int count, string level = null, string searchCriteria = null, DateTime? startDate = null,
1517
DateTime? endDate = null)
1618
{

0 commit comments

Comments
 (0)