public void Should_BeUnSuccessful_IfAccountIsNotFound() { // Aarange _target = PaymentServiceBuilder.Builder().UseAvailablePaymentTypeStrategy().MockWith(null).Build(); //act var result = _target.MakePayment(new MakePaymentRequest() { Amount = 100 }); //assert Assert.IsFalse(result.Success); }
public void Should_BeUnsuccessfulWhenRequestedPaymentTypeIsNotAvailableForTheAccount() { // Aarange _target = PaymentServiceBuilder.Builder().UseNotAvailablePaymentTypeStrategy().MockWith(new Account()).Build(); //act var result = _target.MakePayment(new MakePaymentRequest() { Amount = 100 }); //assert Assert.IsFalse(result.Success); }
public void Should_CallUpdateAccountInDataStore_WhenRequestingAllowedPaymentScheme() { // Aarange var account = new Account(); var paymentServiceBuilder = PaymentServiceBuilder.Builder(); _target = paymentServiceBuilder.UseAvailablePaymentTypeStrategy().MockWith(account).Build(); //act _target.MakePayment(new MakePaymentRequest()); //assert paymentServiceBuilder.CurrentDataStoreUsed.AssertWasCalled(x => x.UpdateAccount( Arg <Account> .Is.Equal(account))); }
public void Should_NotReduceBalanceOnTheAccount_WhenRequestingDisAllowedPaymentScheme() { // Aarange decimal balance = 1000; var account = new Account() { Balance = balance }; _target = PaymentServiceBuilder.Builder().UseNotAvailablePaymentTypeStrategy().MockWith(account).Build(); //act _target.MakePayment(new MakePaymentRequest() { Amount = 100 }); //assert Assert.AreEqual(balance, account.Balance); }
private IPaymentService MockAccountAndGet(Account account) { return(PaymentServiceBuilder.Builder().UseRealPaymentTypeStrategy().MockWith(account).Build()); }