51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Options;
|
|
using ScadaLink.AuditLog.Configuration;
|
|
|
|
namespace ScadaLink.AuditLog.Tests;
|
|
|
|
/// <summary>
|
|
/// Bundle E (M1) smoke tests for the Audit Log (#23) DI scaffold. Verifies
|
|
/// <c>AddAuditLog</c> registers <see cref="AuditLogOptions"/> against the
|
|
/// <c>AuditLog</c> configuration section. Bundle E ships only the scaffold;
|
|
/// the validator + full options surface land in Task 9.
|
|
/// </summary>
|
|
public class AddAuditLogTests
|
|
{
|
|
[Fact]
|
|
public void AddAuditLog_RegistersAuditLogOptions()
|
|
{
|
|
var config = new ConfigurationBuilder()
|
|
.AddInMemoryCollection(new Dictionary<string, string?>())
|
|
.Build();
|
|
|
|
var services = new ServiceCollection();
|
|
services.AddAuditLog(config);
|
|
var provider = services.BuildServiceProvider();
|
|
|
|
var opts = provider.GetService<IOptions<AuditLogOptions>>();
|
|
|
|
Assert.NotNull(opts);
|
|
Assert.NotNull(opts!.Value);
|
|
}
|
|
|
|
[Fact]
|
|
public void AddAuditLog_NullServices_Throws()
|
|
{
|
|
var config = new ConfigurationBuilder().Build();
|
|
|
|
Assert.Throws<ArgumentNullException>(
|
|
() => ServiceCollectionExtensions.AddAuditLog(null!, config));
|
|
}
|
|
|
|
[Fact]
|
|
public void AddAuditLog_NullConfig_Throws()
|
|
{
|
|
var services = new ServiceCollection();
|
|
|
|
Assert.Throws<ArgumentNullException>(
|
|
() => services.AddAuditLog(null!));
|
|
}
|
|
}
|