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); }
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(); }
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); }
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(); }