public void SampleCommandWithAsyncException_ShouldRunWithNoException(string id, string name, string accountno)
        {
            var handler = CommandHandlerFactory.GetCommandHandler <SampleCommandWithAsyncException.SampleCommandWithAsyncException>();
            var command = new SampleCommandWithAsyncException.SampleCommandWithAsyncException
            {
                Id        = id,
                Name      = name,
                AccountNo = accountno
            };

            Should.NotThrow(() => handler.Handle(command));
        }
        public void SampleCommandWithAsyncException_ShouldShowAsyncExceptionInConsole(string id, string name, string accountno)
        {
            var handler = CommandHandlerFactory.GetCommandHandler <SampleCommandWithAsyncException.SampleCommandWithAsyncException>();
            var command = new SampleCommandWithAsyncException.SampleCommandWithAsyncException
            {
                Id        = id,
                Name      = name,
                AccountNo = accountno
            };

            using (var sw = new StringWriter())
            {
                // redirect console output to stringwriter
                Console.SetOut(sw);

                Should.CompleteIn(() => handler.Handle(command), TimeSpan.FromSeconds(11));

                var expected      = "Exception in Async";
                var consoleOutput = sw.ToString();
                consoleOutput.ShouldContain(expected);
            }
        }