public async Task Host_can_loopback_events(SecondTestEvent testEvent, EventReceivedAsync <SecondTestEvent> eventReceived)
        {
            var host = TestUtils.CreateNybusHost(nybus =>
            {
                nybus.UseRabbitMqBusEngine(rabbitMq =>
                {
                    rabbitMq.Configure(configuration => configuration.ConnectionFactory = new ConnectionFactory());
                });

                nybus.SubscribeToEvent <SecondTestEvent>();
            },
                                                 services =>
            {
                services.AddSingleton(eventReceived);
                services.AddSingleton <IEventHandler <SecondTestEvent>, SecondTestEventHandler>();
            });

            await host.StartAsync();

            await host.Bus.RaiseEventAsync(testEvent);

            await Task.Delay(TimeSpan.FromMilliseconds(50));

            await host.StopAsync();

            Mock.Get(eventReceived).Verify(p => p(It.IsAny <IDispatcher>(), It.IsAny <IEventContext <SecondTestEvent> >()));
        }
        public async Task Host_can_loopback_events(ServiceCollection services, SecondTestEvent testEvent, [Frozen] EventReceivedAsync <SecondTestEvent> eventReceived, SecondTestEventHandler handler)
        {
            services.AddLogging(l => l.AddDebug());

            services.AddSingleton(eventReceived);
            services.AddSingleton(handler);

            services.AddNybus(nybus =>
            {
                nybus.UseInMemoryBusEngine();

                nybus.SubscribeToEvent <SecondTestEvent, SecondTestEventHandler>();
            });

            var serviceProvider = services.BuildServiceProvider();

            var host = serviceProvider.GetRequiredService <IBusHost>();

            var bus = serviceProvider.GetRequiredService <IBus>();

            await host.StartAsync();

            await bus.RaiseEventAsync(testEvent);

            await host.StopAsync();

            Mock.Get(eventReceived).Verify(p => p(It.IsAny <IDispatcher>(), It.IsAny <IEventContext <SecondTestEvent> >()));
        }
Beispiel #3
0
        public async Task Host_can_loopback_events(SecondTestEvent testEvent, EventReceivedAsync <SecondTestEvent> eventReceived, string headerKey, string headerValue)
        {
            var host = TestUtils.CreateNybusHost(nybus =>
            {
                nybus.SubscribeToEvent(eventReceived);

                nybus.UseRabbitMqBusEngine(rabbitMq =>
                {
                    rabbitMq.Configure(c => c.ConnectionFactory = new ConnectionFactory());
                });
            },
                                                 services =>
            {
                services.AddSingleton(eventReceived);
                services.AddSingleton <IEventHandler <SecondTestEvent>, SecondTestEventHandler>();
            });

            await host.StartAsync();

            var headers = new Dictionary <string, string>
            {
                [headerKey] = headerValue
            };

            await host.Bus.RaiseEventAsync(testEvent, headers);

            await Task.Delay(TimeSpan.FromMilliseconds(50));

            await host.StopAsync();

            Mock.Get(eventReceived).Verify(p => p(It.IsAny <IDispatcher>(), It.Is <IEventContext <SecondTestEvent> >(c => c.Message.Headers.ContainsKey(headerKey) && c.Message.Headers[headerKey] == headerValue)));
        }
Beispiel #4
0
        public async Task Host_can_loopback_events(ServiceCollection services, SecondTestEvent testEvent, EventReceivedAsync <SecondTestEvent> eventReceived, string headerKey, string headerValue)
        {
            services.AddLogging(l => l.AddDebug());

            services.AddSingleton(eventReceived);
            services.AddSingleton <IEventHandler <SecondTestEvent>, SecondTestEventHandler>();

            services.AddNybus(nybus =>
            {
                nybus.UseInMemoryBusEngine();

                nybus.SubscribeToEvent <SecondTestEvent>();
            });

            var serviceProvider = services.BuildServiceProvider();

            var host = serviceProvider.GetRequiredService <IBusHost>();

            var bus = serviceProvider.GetRequiredService <IBus>();

            await host.StartAsync();

            var headers = new Dictionary <string, string>
            {
                [headerKey] = headerValue
            };

            await bus.RaiseEventAsync(testEvent, headers);

            await host.StopAsync();

            Mock.Get(eventReceived).Verify(p => p(It.IsAny <IDispatcher>(), It.Is <IEventContext <SecondTestEvent> >(c => c.Message.Headers.ContainsKey(headerKey) && c.Message.Headers[headerKey] == headerValue)));
        }
        public bool Get(string message = "Default test SecondMicroservice")
        {
            _logger.LogInformation("Send '{0}' message from SecondMicroservice.", message);
            var test = new FirstTestEvent()
            {
                Message = message
            };
            var test2 = new SecondTestEvent()
            {
                Message = message
            };

            _eventBus.Publish(test);
            _eventBus.Publish(test2);

            return(true);
        }
Beispiel #6
0
        public async Task Host_can_loopback_events(ServiceCollection services, SecondTestEvent testEvent, EventReceivedAsync <SecondTestEvent> eventReceived)
        {
            var settings = new Dictionary <string, string>
            {
                ["Nybus:ErrorPolicy:ProviderName"] = "retry",
                ["Nybus:ErrorPolicy:MaxRetries"]   = "5",
            };

            var configurationBuilder = new ConfigurationBuilder().AddInMemoryCollection(settings);
            var configuration        = configurationBuilder.Build();

            services.AddLogging(l => l.AddDebug());

            services.AddSingleton(eventReceived);
            services.AddSingleton <IEventHandler <SecondTestEvent>, SecondTestEventHandler>();

            services.AddNybus(nybus =>
            {
                nybus.UseInMemoryBusEngine();

                nybus.UseConfiguration(configuration);

                nybus.SubscribeToEvent <SecondTestEvent>();
            });

            var serviceProvider = services.BuildServiceProvider();

            var host = serviceProvider.GetRequiredService <IBusHost>();

            var bus = serviceProvider.GetRequiredService <IBus>();

            await host.StartAsync();

            await bus.RaiseEventAsync(testEvent);

            await host.StopAsync();

            Mock.Get(eventReceived).Verify(p => p(It.IsAny <IDispatcher>(), It.IsAny <IEventContext <SecondTestEvent> >()));
        }
Beispiel #7
0
        public async Task Host_can_loopback_events(SecondTestEvent testEvent, EventReceivedAsync <SecondTestEvent> eventReceived)
        {
            var settings = new Dictionary <string, string>
            {
                ["Nybus:ErrorPolicy:ProviderName"] = "retry",
                ["Nybus:ErrorPolicy:MaxRetries"]   = "5",
            };

            var configurationBuilder = new ConfigurationBuilder().AddInMemoryCollection(settings);
            var configuration        = configurationBuilder.Build();

            var host = TestUtils.CreateNybusHost(nybus =>
            {
                nybus.UseRabbitMqBusEngine(rabbitMq =>
                {
                    rabbitMq.Configure(c => c.ConnectionFactory = new ConnectionFactory());
                });

                nybus.UseConfiguration(configuration);

                nybus.SubscribeToEvent <SecondTestEvent>();
            },
                                                 services =>
            {
                services.AddSingleton(eventReceived);
                services.AddSingleton <IEventHandler <SecondTestEvent>, SecondTestEventHandler>();
            });

            await host.StartAsync();

            await host.Bus.RaiseEventAsync(testEvent);

            await Task.Delay(TimeSpan.FromMilliseconds(50));

            await host.StopAsync();

            Mock.Get(eventReceived).Verify(p => p(It.IsAny <IDispatcher>(), It.IsAny <IEventContext <SecondTestEvent> >()));
        }
Beispiel #8
0
        public async Task Host_can_loopback_events(FakeServer server, SecondTestEvent testEvent, [Frozen] EventReceivedAsync <SecondTestEvent> eventReceived, SecondTestEventHandler handler)
        {
            var host = CreateNybusHost(nybus =>
            {
                nybus.SubscribeToEvent(eventReceived);

                nybus.UseRabbitMqBusEngine(rabbitMq => { rabbitMq.Configure(c => c.ConnectionFactory = server.CreateConnectionFactory()); });

                nybus.SubscribeToEvent <SecondTestEvent, SecondTestEventHandler>();
            },
                                       services =>
            {
                services.AddSingleton(eventReceived);
                services.AddSingleton(handler);
            });

            await host.StartAsync();

            await host.Bus.RaiseEventAsync(testEvent);

            await host.StopAsync();

            Mock.Get(eventReceived).Verify(p => p(It.IsAny <IDispatcher>(), It.IsAny <IEventContext <SecondTestEvent> >()));
        }
 private void SomeEventHandler(FirstTestEvent firstTestEvent, SecondTestEvent secondTestEvent)
 {
     InvokedForFirstEvent  = true;
     InvokedForSecondEvent = true;
 }
 private void SomeEventHandler(SecondTestEvent @event)
 {
     InvokedForFirstEvent  = false;
     InvokedForSecondEvent = true;
 }