public void Should_update_account_balance_if_validation_is_successful() { const string accountNumber = "12312312ABC"; const int initialAccountBalance = 224; const int expectedAccountBalance = 102; var request = new MakePaymentRequest { PaymentScheme = PaymentScheme.Bacs, DebtorAccountNumber = accountNumber, Amount = 122 }; var account = accountBuilder .WithAccountNumberAs(accountNumber) .WithBalanceAs(initialAccountBalance) .Build(); config.DataStoreType.Returns(DataStoreType.Account); accountDataStore.GetAccount(accountNumber).Returns(account); bacsValidator.Validate(account, request) .Returns(MakePaymentResult.Ok); var paymentService = CreateService(); paymentService.MakePayment(request); account.Balance.Should().Be(expectedAccountBalance); }
public PaymentServiceTests() { accountBuilder = new AccountBuilder(); config = Substitute.For <IConfiguration>(); accountDataStores = Substitute.For <IIndex <DataStoreType, IProvideAccountData> >(); accountDataStore = Substitute.For <IProvideAccountData>(); backupAccountDataStore = Substitute.For <IProvideAccountData>(); accountDataStores[DataStoreType.Account].Returns(accountDataStore); accountDataStores[DataStoreType.BackupAccount].Returns(backupAccountDataStore); accountValidators = Substitute.For <IIndex <PaymentScheme, IValidatePaymentRequest> >(); bacsValidator = Substitute.For <IValidatePaymentRequest>(); accountValidators[PaymentScheme.Bacs].Returns(bacsValidator); bacsValidator.Validate(Arg.Any <Account>(), Arg.Any <MakePaymentRequest>()) .Returns(MakePaymentResult.Failure); }