Exemplo n.º 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>();
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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>();
        }
Exemplo n.º 4
0
 public PublisherController(IPublisherClientService publisherClientService)
 {
     _publisherClientService = publisherClientService;
 }