Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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)));
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 private IPaymentService MockAccountAndGet(Account account)
 {
     return(PaymentServiceBuilder.Builder().UseRealPaymentTypeStrategy().MockWith(account).Build());
 }