public StandaloneTest() { 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); _channelName = $"{settings.ApplicationName}.{settings.ServiceName}"; var options = Options.Create(settings); var diagnostic = new MyDiagnosticSource(); var remoteSettings = new RemoteServiceSettings { IsLocal = true }; services.AddPublisher(remoteSettings, options, loggerFactory, diagnostic); services.AddSubscriber(remoteSettings, options, loggerFactory, diagnostic); _serviceProvider = services.BuildServiceProvider(); _publisher = _serviceProvider.GetService <IPublisherClientService>(); _subscriber = _serviceProvider.GetService <SubscriberClientService>(); }
public PublisherTest() { var loggerFactory = new LoggerFactory(); loggerFactory.AddConsole(); _eventChannelRepository = new EventChannelRepository("ECommerce.Data.FileStore", new ConnectionOptions { Provider = "FileDb", ConnectionString = new FileInfo($"data\\channel_{Guid.NewGuid()}.json").FullName }, loggerFactory, new MyDiagnosticSource()); _eventSubscriptionRepository = new EventSubscriptionRepository(_eventChannelRepository, "ECommerce.Data.FileStore", new ConnectionOptions { Provider = "FileDb", ConnectionString = new FileInfo($"data\\subscription_{Guid.NewGuid()}.json").FullName }, loggerFactory, new MyDiagnosticSource()); _eventRepository = new EventRepository(_eventChannelRepository, "ECommerce.Data.FileStore", new ConnectionOptions { Provider = "FileDb", ConnectionString = new FileInfo($"data\\event_{Guid.NewGuid()}.json").FullName }, loggerFactory, new MyDiagnosticSource()); _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 publisherSettings = new RemoteServiceSettings { IsLocal = true }; _publisher = new LocalPublisherClientService(_eventChannelRepository, _eventSubscriptionRepository, _eventRepository, _settings, loggerFactory, new MyDiagnosticSource()); }
public RemotePublisherTest() { var loggerFactory = new LoggerFactory(); loggerFactory.AddConsole(); var services = new ServiceCollection(); var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appSettings-RemotePublisher.json").Build(); var settings = new NotificationServiceSettings(); config.GetSection("Notification").Bind(settings); _channelName = $"{settings.ApplicationName}.{settings.ServiceName}"; var options = Options.Create(settings); var diagnostic = new MyDiagnosticSource(); // Arrange a local subscriber var subscriberSettings = new RemoteServiceSettings { IsLocal = true, Uri = "" }; services.AddSubscriber(subscriberSettings, options, loggerFactory, diagnostic); // Arrange a remote publisher //start a publisher web site var testHost = new TestPublisherHost(); services.AddPublisher(new RemoteServiceSettings { IsLocal = false, Uri = testHost.Server.BaseAddress.ToString() }, options, loggerFactory, diagnostic, testHost.Server.CreateClient()); _serviceProvider = services.BuildServiceProvider(); _subscriber = _serviceProvider.GetService <SubscriberClientService>(); _publisher = _serviceProvider.GetService <IPublisherClientService>(); }
public PublisherController(IPublisherClientService publisherClientService) { _publisherClientService = publisherClientService; }