/// <summary> /// Return the list of Currency /// </summary> /// <returns></returns> public async Task <IActionResult> GetCurrency() { BaseResult <List <CurrencyViewModel> > currencyResultFromCache = new BaseResult <List <CurrencyViewModel> > { Result = RedisCacheHelper.Instance.Get <List <CurrencyViewModel> >(Constants.CacheKeys.CurrencyList) }; if (currencyResultFromCache.Result == null || currencyResultFromCache.Result.Count == 0) { BaseResult <List <Currency> > currencyResult = await iPayment.GetCurrency().ConfigureAwait(false); if (currencyResult.IsError && currencyResult.ExceptionMessage != null) { return(new StatusCodeResult(500)); } else if (currencyResult.Result == null || currencyResult.Result.Count == 0) { return(NoContent()); //204 } else { var result = PaymentDataResponseMapper.MapCurrency(currencyResult); RedisCacheHelper.Instance.Set <List <CurrencyViewModel> >(Constants.CacheKeys.CurrencyList, result.Result); return(Ok(result)); //200 } } return(Ok(currencyResultFromCache)); //200 }
public async Task TestGetCurrency_Positive_Predicate() { //Arrange var currency = new Currency() { Id = 1, Name = "RS", IsActive = true, Code = "IND", IsDeleted = false }; var baseResult = new BaseResult <List <Currency> >() { Result = new List <Currency>() { currency } }; var pred = new Func <Currency, bool>(x => x.IsActive && !x.IsDeleted); iCurrencyConnectionLibrary.Setup(x => x.GetListByPredicate(It.Is <Func <Currency, bool> >(y => y.GetType() == pred.GetType()))).Returns(Task.FromResult(baseResult)); //Act Task <BaseResult <List <Currency> > > result = paymentDataRepository.GetCurrency(); //Assert Assert.IsTrue(result.Result != null); Assert.IsTrue(result.Result is BaseResult <List <Currency> >); }