public PublisherClientServiceExtensionTestAppSettings() { var loggerFactory = new LoggerFactory(); loggerFactory.AddConsole(); var services = new ServiceCollection(); var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appSettings.json").Build(); var settings = new NotificationServiceSettings(); config.GetSection("Notification").Bind(settings); var publisherSettings = new RemoteServiceSettings(); config.GetSection("Notification:Publisher").Bind(publisherSettings); _channelName = $"{settings.ApplicationName}.{settings.ServiceName}"; services.AddPublisher(publisherSettings, Options.Create(settings), loggerFactory, new MyDiagnosticSource()); _serviceProvider = services.BuildServiceProvider(); _publisher = _serviceProvider.GetService <LocalPublisherClientService>(); }
public PublisherClientServiceExtensionTest() { var loggerFactory = new LoggerFactory(); loggerFactory.AddConsole(); var services = new ServiceCollection(); var eventChannelRepository = new EventChannelRepository("ECommerce.Data.FileStore", new ConnectionOptions { Provider = "FileDb", ConnectionString = new FileInfo($"data\\channel_{Guid.NewGuid()}.json").FullName }, loggerFactory, new MyDiagnosticSource()); services.AddSingleton(eventChannelRepository); var eventSubscriptionRepository = new EventSubscriptionRepository(eventChannelRepository, "ECommerce.Data.FileStore", new ConnectionOptions { Provider = "FileDb", ConnectionString = new FileInfo($"data\\subscription_{Guid.NewGuid()}.json").FullName }, loggerFactory, new MyDiagnosticSource()); services.AddSingleton(eventSubscriptionRepository); var eventRepository = new EventRepository(eventChannelRepository, "ECommerce.Data.FileStore", new ConnectionOptions { Provider = "FileDb", ConnectionString = new FileInfo($"data\\event_{Guid.NewGuid()}.json").FullName }, loggerFactory, new MyDiagnosticSource()); services.AddSingleton(eventRepository); var settings = Options.Create(new NotificationServiceSettings { ApplicationName = "MyApplication", ServiceName = "MyService", MaxLifeTimeSubscriber = 30, MaxLifeTimeMessage = 30, IsFifo = true, CallBackType = "ECommerce.Events.Clients.Tests,ECommerce.Events.Clients.Tests.MyCallBackTest" }); var publisherSetting = new RemoteServiceSettings { IsLocal = true }; services.AddPublisher(publisherSetting, settings, loggerFactory, new MyDiagnosticSource()); _serviceProvider = services.BuildServiceProvider(); _publisher = _serviceProvider.GetRequiredService <LocalPublisherClientService>(); _channelName = $"{settings.Value.ApplicationName}.{settings.Value.ServiceName}"; }