Ejemplo n.º 1
0
        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>();
        }
Ejemplo n.º 2
0
        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}";
        }