public async Task ExecutesCancellableHandlerWithNoResult()
        {
            // Arrange
            CommandHandlerExecuter testSubject = new CommandHandlerExecuter();
            CancellableSimpleCommandNoResultHandler handler = new CancellableSimpleCommandNoResultHandler();
            SimpleCommandNoResult command = new SimpleCommandNoResult();

            testSubject.CompileHandlerExecuter(typeof(SimpleCommandNoResult), typeof(CancellableSimpleCommandNoResultHandler));

            // Act
            await testSubject.ExecuteAsync(handler, new NoResultCommandWrapper(command), null, CancellationToken.None);

            // Assert
            Assert.True(command.WasHandled);
        }
        public async Task ExecutesCancellableHandlerWithResult()
        {
            // Arrange
            CommandHandlerExecuter          testSubject = new CommandHandlerExecuter();
            CancellableSimpleCommandHandler handler     = new CancellableSimpleCommandHandler();
            SimpleCommand command = new SimpleCommand();

            testSubject.CompileHandlerExecuter(typeof(SimpleCommand), typeof(CancellableSimpleCommandHandler));

            // Act
            SimpleResult result = await testSubject.ExecuteAsync(handler, command, null, CancellationToken.None);

            // Assert
            Assert.Single(result.Handlers);
            Assert.Equal(typeof(CancellableSimpleCommandHandler), result.Handlers.Single());
        }