Exemple #1
0
        public void WhenIMakeThePayment()
        {
            var request         = ScenarioContext.Current["Request"] as MakePaymentRequest;
            var accountDebtor   = ScenarioContext.Current["DebtorAccount"] as Account;
            var accountCreditor = ScenarioContext.Current["DebtorAccount"] as Account;

            accountCreditor.AccountNumber = request.CreditorAccountNumber;

            uow.When(() => request.DebtorAccountNumber != null).Setup(s => s.AccountDataStore.GetAccount(request.DebtorAccountNumber))
            .Returns(accountDebtor);
            uow.When(() => request.CreditorAccountNumber != null).Setup(s => s.AccountDataStore.GetAccount(request.CreditorAccountNumber))
            .Returns(accountCreditor);

            var paymentScheme           = new PaymentFactory();
            var paymentRequestValidator = new MakePaymentRequestValidator(uow.Object);
            var paymentService          = new PaymentService(uow.Object, paymentScheme, paymentRequestValidator);
            var result = paymentService.MakePayment(request);

            ScenarioContext.Current["Result"] = result;
        }
        public void WhenICallTheMakePaymentRequestValidation()
        {
            Mock <IUnitOfWork> uow = new Mock <IUnitOfWork>();
            var request            = ScenarioContext.Current["Request"] as MakePaymentRequest;

            uow.When(() => request.DebtorAccountNumber != "").Setup(s => s.AccountDataStore.GetAccount(request.DebtorAccountNumber))
            .Returns(new Account()
            {
                AccountNumber = request.DebtorAccountNumber
            });
            uow.When(() => request.CreditorAccountNumber != "").Setup(s => s.AccountDataStore.GetAccount(request.CreditorAccountNumber))
            .Returns(new Account()
            {
                AccountNumber = request.CreditorAccountNumber
            });
            uow.When(() => request.CreditorAccountNumber == "").Setup(s => s.AccountDataStore.GetAccount(request.CreditorAccountNumber))
            .Returns(new Account());

            var validator = new MakePaymentRequestValidator(uow.Object);

            ScenarioContext.Current["Result"] = validator.IsValid(request);
        }
 public void SetUp()
 {
     _validator = new MakePaymentRequestValidator();
 }