Example #1
0
        public void UseHostAccessor_ThenValid()
        {
            var services       = new ServiceCollection();
            var busHostBuilder = new DummyBusHostBuilder <IHost, IBusFactoryConfigurator>(services, "test");

            busHostBuilder.UseHostAccessor();

            Assert.Contains(services, item =>
                            item.Lifetime == ServiceLifetime.Transient &&
                            item.ServiceType == typeof(IHostAccessor) &&
                            item.ImplementationType == typeof(HostAccessor));

            Assert.Contains(services, item =>
                            item.Lifetime == ServiceLifetime.Singleton &&
                            item.ServiceType == typeof(IHostAccessor <IHost>) &&
                            ((IHostAccessor <IHost>)item.ImplementationInstance).ConnectionName == "test" &&
                            ((IHostAccessor <IHost>)item.ImplementationInstance).Host == null);

            var mockHost = new Mock <IHost>(MockBehavior.Strict);
            var mockBusFactoryConfigurator = new Mock <IBusFactoryConfigurator>(MockBehavior.Strict);
            var mockServiceProvider        = new Mock <IServiceProvider>(MockBehavior.Strict);

            busHostBuilder.DoConfigure(mockHost.Object, mockBusFactoryConfigurator.Object, mockServiceProvider.Object);

            Assert.Contains(services, item =>
                            item.Lifetime == ServiceLifetime.Singleton &&
                            item.ServiceType == typeof(IHostAccessor <IHost>) &&
                            ((IHostAccessor <IHost>)item.ImplementationInstance).ConnectionName == "test" &&
                            ((IHostAccessor <IHost>)item.ImplementationInstance).Host == mockHost.Object);
        }
Example #2
0
        public void UseServiceScope_ThenValid()
        {
            var services       = new ServiceCollection();
            var busHostBuilder = new DummyBusHostBuilder <IHost, IBusFactoryConfigurator>(services, "test");

            busHostBuilder.UseServiceScope();

            AssertSpecifications(busHostBuilder);
        }
Example #3
0
        public void UseCorrelationManager_GivenAccessor_ThenValid()
        {
            var services       = new ServiceCollection();
            var busHostBuilder = new DummyBusHostBuilder <IHost, IBusFactoryConfigurator>(services, "test");

            busHostBuilder.UseCorrelationManager(context => context.CorrelationId ?? Guid.Empty);

            AssertSpecifications(busHostBuilder);
        }
Example #4
0
        private static void AssertSpecifications(DummyBusHostBuilder <IHost, IBusFactoryConfigurator> busHostBuilder)
        {
            var mockHost                   = new Mock <IHost>(MockBehavior.Strict);
            var mockServiceProvider        = new Mock <IServiceProvider>(MockBehavior.Strict);
            var mockBusFactoryConfigurator = new Mock <IBusFactoryConfigurator>(MockBehavior.Strict);

            mockBusFactoryConfigurator
            .As <IPipeConfigurator <ConsumeContext> >()
            .Setup(_ => _.AddPipeSpecification(It.IsAny <IPipeSpecification <ConsumeContext> >()))
            .Callback((IPipeSpecification <ConsumeContext> specification) => AssertSpecification(specification))
            .Verifiable();

            busHostBuilder.DoConfigure(mockHost.Object, mockBusFactoryConfigurator.Object, mockServiceProvider.Object);

            mockBusFactoryConfigurator.Verify();
        }
Example #5
0
        public void AddConfigurator_ThenValid()
        {
            var services       = new ServiceCollection();
            var busHostBuilder = new DummyBusHostBuilder <IHost, IBusFactoryConfigurator>(services, "test");

            var mockHost                   = new Mock <IHost>(MockBehavior.Strict);
            var mockServiceProvider        = new Mock <IServiceProvider>(MockBehavior.Strict);
            var mockBusFactoryConfigurator = new Mock <IBusFactoryConfigurator>(MockBehavior.Strict);

            var configuratorWasCalled = false;

            busHostBuilder.AddConfigurator((host, configurator, serviceProvider) =>
            {
                configuratorWasCalled = true;
                Assert.Same(mockHost.Object, host);
                Assert.Same(mockServiceProvider.Object, serviceProvider);
                Assert.Same(mockBusFactoryConfigurator.Object, configurator);
            });

            busHostBuilder.DoConfigure(mockHost.Object, mockBusFactoryConfigurator.Object, mockServiceProvider.Object);
            Assert.True(configuratorWasCalled);
        }
Example #6
0
        public void AddReceiveEndpoint_GivenConfigurator_ThenValid()
        {
            var services       = new ServiceCollection();
            var busHostBuilder =
                new DummyBusHostBuilder <IHost, IBusFactoryConfigurator>(services, "connection-name-test");

            var mockHost                        = new Mock <IHost>(MockBehavior.Strict);
            var mockServiceProvider             = new Mock <IServiceProvider>(MockBehavior.Strict);
            var mockBusFactoryConfigurator      = new Mock <IBusFactoryConfigurator>(MockBehavior.Strict);
            var mockReceiveEndpointConfigurator = new Mock <IReceiveEndpointConfigurator>(MockBehavior.Strict);

            var endpointConfiguratorWasCalled = false;

            busHostBuilder.AddReceiveEndpoint("queue-name-test", (IReceiveEndpointBuilder <IHost, IReceiveEndpointConfigurator> builder) =>
            {
                builder.AddConfigurator((host, endpointConfigurator, serviceProvider) =>
                {
                    endpointConfiguratorWasCalled = true;
                    Assert.Same(mockHost.Object, host);
                    Assert.Same(mockServiceProvider.Object, serviceProvider);
                    Assert.Same(mockReceiveEndpointConfigurator.Object, endpointConfigurator);
                });
            });

            var receiveEndpointConfigurator = mockReceiveEndpointConfigurator.Object;

            mockBusFactoryConfigurator
            .Setup(_ => _.ReceiveEndpoint("queue-name-test", It.IsAny <Action <IReceiveEndpointConfigurator> >()))
            .Callback((string queueName, Action <IReceiveEndpointConfigurator> configureEndpoint) => configureEndpoint(receiveEndpointConfigurator))
            .Verifiable();

            busHostBuilder.DoConfigure(mockHost.Object, mockBusFactoryConfigurator.Object, mockServiceProvider.Object);

            Assert.True(endpointConfiguratorWasCalled);
            mockReceiveEndpointConfigurator.Verify();
            mockBusFactoryConfigurator.Verify();
        }
Example #7
0
        public void Initialize_ThenValid()
        {
            var services = new ServiceCollection();

            var busHostBuilder1 = new DummyBusHostBuilder <IHost, IBusFactoryConfigurator>(services, "test1");

            Assert.Contains(services, item =>
                            item.Lifetime == ServiceLifetime.Singleton &&
                            item.ServiceType == typeof(IBusHostFactory) &&
                            item.ImplementationInstance == busHostBuilder1);

            Assert.Same(services, busHostBuilder1.Services);
            Assert.Equal("test1", busHostBuilder1.ConnectionName);

            var busHostBuilder2 = new DummyBusHostBuilder <IHost, IBusFactoryConfigurator>(services, "test2");

            Assert.Contains(services, item =>
                            item.Lifetime == ServiceLifetime.Singleton &&
                            item.ServiceType == typeof(IBusHostFactory) &&
                            item.ImplementationInstance == busHostBuilder2);

            Assert.Same(services, busHostBuilder2.Services);
            Assert.Equal("test2", busHostBuilder2.ConnectionName);
        }