Example #1
0
        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 SubscriberClientServiceExtensionTestAppSettings()
        {
            var loggerFactory = new LoggerFactory();

            loggerFactory.AddConsole();

            var config = new ConfigurationBuilder()
                         .SetBasePath(Directory.GetCurrentDirectory())
                         .AddJsonFile("appSettings.json").Build();

            var services = new ServiceCollection();

            var settings = new NotificationServiceSettings();

            config.GetSection("Notification").Bind(settings);

            _settings = Options.Create(settings);

            var subscriberSettings = new RemoteServiceSettings();

            config.GetSection("Notification:Subscriber").Bind(subscriberSettings);

            services.AddSubscriber(subscriberSettings, _settings, loggerFactory, new MyDiagnosticSource());

            _serviceProvider = services.BuildServiceProvider();
            _subscriber      = _serviceProvider.GetService <SubscriberClientService>();
        }
        public SubscriberClientServiceExtensionTest()
        {
            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);

            _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 subscriberSettings = new RemoteServiceSettings {
                IsLocal = true
            };

            services.AddSubscriber(subscriberSettings, _settings, loggerFactory, new MyDiagnosticSource());

            _serviceProvider = services.BuildServiceProvider();
            _subscriber      = _serviceProvider.GetService <SubscriberClientService>();
        }
        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>();
        }