public void WithFallbackMessageHandlerImplementationFunction_WithoutImplementationFunction_Throws()
        {
            // Arrange
            var services = new MessageHandlerCollection(new ServiceCollection());

            // Act / Assert
            Assert.ThrowsAny <ArgumentException>(
                () => services.WithFallbackMessageHandler(createImplementation: (Func <IServiceProvider, PassThruFallbackMessageHandler>)null));
        }
Ejemplo n.º 2
0
        public void WithFallbackMessageHandler_WithoutImplementationFactory_Fails()
        {
            // Arrange
            var services = new MessageHandlerCollection(new ServiceCollection());

            // Act / Assert
            Assert.ThrowsAny <ArgumentException>(
                () => services.WithFallbackMessageHandler <PassThruFallbackMessageHandler>(createImplementation: null));
        }
        public void WithFallbackMessageHandler_WithValidType_RegistersInterface()
        {
            // Arrange
            var services = new MessageHandlerCollection(new ServiceCollection());

            // Act
            services.WithFallbackMessageHandler <PassThruFallbackMessageHandler>();

            // Assert
            IServiceProvider provider = services.Services.BuildServiceProvider();
            var messageHandler        = provider.GetRequiredService <IFallbackMessageHandler>();

            Assert.IsType <PassThruFallbackMessageHandler>(messageHandler);
        }
        public void WithFallbackMessageHandler_WithValidImplementationFunction_RegistersInterface()
        {
            // Arrange
            var services = new MessageHandlerCollection(new ServiceCollection());
            var expected = new PassThruFallbackMessageHandler();

            // Act
            services.WithFallbackMessageHandler(serviceProvider => expected);

            // Assert
            IServiceProvider provider = services.Services.BuildServiceProvider();
            var actual = provider.GetRequiredService <IFallbackMessageHandler>();

            Assert.Same(expected, actual);
        }