26ff8d9b4f
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
75 lines
2.3 KiB
C#
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 { }
|
|
}
|