using Microsoft.Extensions.DependencyInjection; using ZB.MOM.WW.CBDDC.Core.Network; using ZB.MOM.WW.CBDDC.Core.Storage; namespace ZB.MOM.WW.CBDDC.Network.Tests; public class MultiDatasetRegistrationTests { [Fact] public void AddCBDDCMultiDataset_ShouldRegisterCoordinatorAndReplaceSyncOrchestrator() { var services = new ServiceCollection(); services.AddCBDDCNetwork(useHostedService: false); services.AddCBDDCMultiDataset(options => { options.EnableMultiDatasetSync = true; options.EnableDatasetPrimary = true; options.EnableDatasetLogs = true; options.EnableDatasetTimeseries = true; }); services.Any(descriptor => descriptor.ServiceType == typeof(IMultiDatasetSyncOrchestrator)).ShouldBeTrue(); var syncDescriptor = services.Last(descriptor => descriptor.ServiceType == typeof(ISyncOrchestrator)); syncDescriptor.ImplementationFactory.ShouldNotBeNull(); } private sealed class TestPeerNodeConfigurationProvider : IPeerNodeConfigurationProvider { public event PeerNodeConfigurationChangedEventHandler? ConfigurationChanged { add { } remove { } } public Task GetConfiguration() { return Task.FromResult(new PeerNodeConfiguration { NodeId = "node-test", TcpPort = 9000, AuthToken = "auth" }); } } }