public void WhenAccountDoesNotHaveEnoughFunds_ShouldInvalidOperationException() { Given.ValidAccountExistsInDatabase(FromAccount); And.UserIsAuthorisedToWithdraw(FromAccount, User); And.AccountDoesNotHaveEnoughFundsForWithdrawal(FromAccount, WithdrawalAmount); Func <Task> whenIWithdraw = async() => { await SUT.Withdraw(WithdrawalAmount, FromAccount, User); }; whenIWithdraw .Then() .Throw <InvalidOperationException>("because account's balance is less then the withdrawal amount") .WithMessage($"Not enough money on account '{FromAccount}'"); }