public async Task BOC_GetRateAsyncShoudReturn(decimal expectedExchangeRate, DateTime requestedRateDate, DateTime expectedRateDate, string currency) { #region Arrange IBankResult expected = new BankResult() { BankName = "Bank of Canada", HomeCurrency = "CAD", ExchangeRate = expectedExchangeRate, RateDate = expectedRateDate }; IBank ibank = BankFactory.GetBank(BankFactory.SupportedBanks.BOC); #endregion #region Act IBankResult actual = await ibank.GetRateAsync(currency, requestedRateDate); #endregion #region Assert //Assert.Equal(expected, actual); Assert.Equal(expected.RateDate, actual.RateDate); Assert.Equal(expected.ExchangeRate, actual.ExchangeRate); Assert.Equal(expected.BankName, actual.BankName); Assert.Equal(expected.HomeCurrency, actual.HomeCurrency); #endregion }
public async Task Execute(ProcessPaymentInput input) { if (input is null) { _paymentOutputPort.BadRequest("input is null"); return; } Payment payment = Payment .CreateNewCardPayment ( input.Card, input.Amount, input.BeneficiaryAlias ) .RaiseEvents(); BankResult bankResult = await _bankService .SubmitCardPaymentAsync(payment) .ConfigureAwait(false); if (bankResult.PaymentStatus.Equals(PaymentStatus.Succeed)) { payment .Paid() .RaiseEvents(); } _paymentOutputPort.OK(bankResult.BuildOutput()); }
public async Task RBA_GetRateAsyncShoudReturn() { DateTime date = new DateTime(2018, 1, 17); #region Arrange IBankResult expected = new BankResult() { BankName = "Reserve Bank of Australia", HomeCurrency = "AUD", ExchangeRate = 1.2571M, RateDate = date }; #endregion #region Act IBank ibank = BankFactory.GetBank(BankFactory.SupportedBanks.RBA); IBankResult actual = await ibank.GetRateAsync("USD", date); #endregion #region Assert //Assert.Equal(expected, actual); Assert.Equal(expected.RateDate, actual.RateDate); Assert.Equal(expected.ExchangeRate, actual.ExchangeRate); Assert.Equal(expected.BankName, actual.BankName); Assert.Equal(expected.HomeCurrency, actual.HomeCurrency); #endregion }
public static PaymentStatusCode ToPaymentStatusCode(this BankResult bankResult) { return(bankResult switch { BankResult.Failure => PaymentStatusCode.Failure, BankResult.Success => PaymentStatusCode.Success, _ => throw new ArgumentOutOfRangeException(nameof(bankResult), bankResult, null) });
private ProcessPaymentOutput BuildOutput(BankResult bankResult) { return(new ProcessPaymentOutput() { PaymentId = bankResult.PaymentId, PaymentStatus = bankResult.PaymentStatus }); }
public BankResult Validate(PrevalidateExpenseReportLineDataContract request) { //Call: [APP]/0/rest/PrevalidateExpenseReportLine/Validate userConnection = UserConnection ?? SystemUserConnection; IBank Bank = BankFactory.GetBank(BankFactory.SupportedBanks.BOC); BankResult result = new BankResult(); string shortCurrency = FindValueById <string>("Currency", request.CurrencyId, "ShortName"); System.Threading.Tasks.Task.Run(async() => { IBankResult response = await Bank.GetRateAsync(shortCurrency, request.TransactionDate); result = (BankResult)response; }).Wait(); return(result); }
public PaymentResponse(string guid, BankResult bankResult) { Guid = guid; BankResult = bankResult; }