Files
jdescopingtool/NEW/tests/JdeScoping.DataSync.Tests/Services/MergeConfigurationRegistryTests.cs
T
Joseph Doherty 26ff8d9b4f Initial commit: JDE Scoping Tool migration project
Set up repository with legacy .NET Framework 4.8 source (OLD/),
new .NET 10 Blazor solution (NEW/), OpenSpec specifications,
documentation, and project configuration.
2026-01-02 07:43:29 -05:00

75 lines
2.3 KiB
C#

using JdeScoping.Core.Models.WorkOrders;
using JdeScoping.DataSync.Configuration.MergeConfigurations;
using JdeScoping.DataSync.Contracts;
using JdeScoping.DataSync.Services;
using Microsoft.Extensions.DependencyInjection;
using Shouldly;
namespace JdeScoping.DataSync.Tests.Services;
public class MergeConfigurationRegistryTests
{
[Fact]
public void GetConfiguration_RegisteredType_ReturnsConfiguration()
{
// Arrange
var services = new ServiceCollection();
services.AddSingleton<IMergeConfiguration<WorkOrder>, WorkOrderMergeConfiguration>();
var provider = services.BuildServiceProvider();
var registry = new MergeConfigurationRegistry(provider);
// Act
var config = registry.GetConfiguration<WorkOrder>();
// Assert
config.ShouldNotBeNull();
config.TableName.ShouldBe("WorkOrder");
}
[Fact]
public void GetConfiguration_UnregisteredType_ThrowsInvalidOperationException()
{
// Arrange
var services = new ServiceCollection();
var provider = services.BuildServiceProvider();
var registry = new MergeConfigurationRegistry(provider);
// Act & Assert
var ex = Should.Throw<InvalidOperationException>(() => registry.GetConfiguration<UnregisteredEntity>());
ex.Message.ShouldContain("UnregisteredEntity");
}
[Fact]
public void HasConfiguration_RegisteredType_ReturnsTrue()
{
// Arrange
var services = new ServiceCollection();
services.AddSingleton<IMergeConfiguration<WorkOrder>, WorkOrderMergeConfiguration>();
var provider = services.BuildServiceProvider();
var registry = new MergeConfigurationRegistry(provider);
// Act
var result = registry.HasConfiguration<WorkOrder>();
// Assert
result.ShouldBeTrue();
}
[Fact]
public void HasConfiguration_UnregisteredType_ReturnsFalse()
{
// Arrange
var services = new ServiceCollection();
var provider = services.BuildServiceProvider();
var registry = new MergeConfigurationRegistry(provider);
// Act
var result = registry.HasConfiguration<UnregisteredEntity>();
// Assert
result.ShouldBeFalse();
}
private class UnregisteredEntity { }
}