public void ThrowExceptionIfNoHandlersRegistered()
        {
            var builder = new ContainerBuilder();
            builder.RegisterType<SecondTestCommandHandler>().As<ICommandHandler<SecondTestCommand>>();
            container = builder.Build();

            sut = new ContainerCommandHandlerResolver(container);
            sut.ResolveCommandHandler<ICommandHandler<TestCommand>>();
        }
        public void OneCommandHandlerIsResolved()
        {
            var builder = new ContainerBuilder();
            builder.RegisterType<TestCommandHandler>().As<ICommandHandler<TestCommand>>();
            builder.RegisterType<SecondTestCommandHandler>().As<ICommandHandler<SecondTestCommand>>();
            container = builder.Build();

            sut = new ContainerCommandHandlerResolver(container);
            ICommandHandler<TestCommand> commandHandler = sut.ResolveCommandHandler<ICommandHandler<TestCommand>>();

            Assert.IsInstanceOfType(commandHandler, typeof(TestCommandHandler));
        }
Beispiel #3
0
            public void Should_Register_All_Command_Handlers()
            {
                var container = new Container();

                container.Register <ICommandHandler <DoSomethingCommand> >(() => new TestCommandHandler(_testOutputHelper), Lifestyle.Singleton);

                var containerAdapter = new SimpleInjectorContainerAdapter(container);
                var resolver         = new ContainerCommandHandlerResolver(containerAdapter);

                CommandHandlerDelegate commandHandlerDelegate = resolver.ResolveCommandHandler <DoSomethingCommand>();

                // Delegate should invoke the actual command handler - TestCommandHandler.
                commandHandlerDelegate.Invoke(new DoSomethingCommand());

                // Get instance from container to see if it was invoked.
                var registeredCommandHandler = (TestCommandHandler)container.GetInstance <ICommandHandler <DoSomethingCommand> >();

                Assert.Equal(1, registeredCommandHandler.HandledCommands.Count);
                Assert.Contains(registeredCommandHandler.HandledCommands, c => c is DoSomethingCommand);
            }