public void ReturnsCorrectResponseWithStatus() { var transaction = new Transaction { Code = "Field", Balance = 508.64m, Date = new DateTime(2019, 02, 22, 09, 52, 23, 22) }; var request = new ListTransactionsRequest { PropertyRef = "testString" }; var generatedAt = new DateTime(2019, 02, 22, 09, 52, 23, 23); _mockListTransacionsUsecase.Setup(s => s.Execute(It.IsAny <ListTransactionsRequest>())) .Returns(new ListTransactionsResponse(new List <Transaction> { transaction }, request, generatedAt)); var response = _classUnderTest.GetTransactions(request); var json = JsonConvert.SerializeObject(response.Value); Assert.AreEqual(200, response.StatusCode); Assert.AreEqual(expectedJSON(), json); }
public bool TryGetTransactions( string address, string category, int numberOfDays, out List <TransactionResponse> transactionsInCategory, out string errorMessage) { DateTimeOffset localNowDate = DateTimeOffset.Now.Date; DateTimeOffset localXDaysAgo = localNowDate.AddDays(numberOfDays * -1); transactionsInCategory = new List <TransactionResponse>(); int count = 10; int from = 0; DateTimeOffset lastTransactionTime = DateTimeOffset.UtcNow; while (lastTransactionTime.LocalDateTime.Date >= localXDaysAgo) { ListTransactionsRequest listRequest = new ListTransactionsRequest() { Account = "*", Count = count, From = from }; List <TransactionResponse> allTransactions; if (!m_dataConnector.TryPost <List <TransactionResponse> >(listRequest, out allTransactions, out errorMessage)) { return(false); } allTransactions.Reverse(); foreach (TransactionResponse trans in allTransactions) { lastTransactionTime = GetTransactionTime(trans.Time); if (trans.Address.Equals(address, StringComparison.CurrentCultureIgnoreCase) && lastTransactionTime.LocalDateTime.Date >= localXDaysAgo && trans.Category.Equals(category, StringComparison.InvariantCultureIgnoreCase)) { transactionsInCategory.Add(trans); } } if (allTransactions.Count < count) { break; } from += count; } errorMessage = null; return(true); }
private static ListTransactionsRequest ListTransactionsRequest() { var faker = new Faker(); var listTransactionsRequest = new ListTransactionsRequest { PropertyRef = faker.Random.Hash() }; return(listTransactionsRequest); }
public JsonResult GetTransactions([FromQuery] ListTransactionsRequest request) { _logger.LogInformation("Transactions requested for PropertyRef: " + request.PropertyRef); var usecaseResponce = _listTransactions.Execute(request); return(new JsonResult(usecaseResponce) { StatusCode = 200 }); }
public void ExecuteCallsTransactionGateway() { var propertyRef = new Faker().Random.Hash(); var request = new ListTransactionsRequest { PropertyRef = propertyRef }; _classUnderTest.Execute(request); _transactionsGateway.Verify(gateway => gateway.GetTransactionsByPropertyRef(propertyRef)); }
public async Task <IActionResult> List([FromQuery] ListTransactionsRequest request, [FromRoute] int accountId) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } var response = await _transactionService.ListAsync(request, accountId); if (!response.IsValid) { return(BadRequest(response.Message)); } return(Ok(response)); }
public async Task <ListResponse <TransactionsListItemDto> > ListAsync(ListTransactionsRequest request, int accountId) { var filter = _mapper.Map <ListTransactionsRequest, TransactionsFilter>(request); var paging = _mapper.Map <ListTransactionsRequest, Paging>(request); filter.AccountId = accountId; var transactions = await _transactionRepository.GetListAsync(filter, null, paging); var transactionsCount = await _transactionRepository.CountAsync(filter); var transactionsDtosList = _mapper.Map <List <Transaction>, List <TransactionsListItemDto> >(transactions); return(new ListResponse <TransactionsListItemDto>(transactionsDtosList, transactionsCount)); }
public void ExecuteReturnsResponceUsingGatewayResults() { var propertyRef = new Faker().Random.Hash(); var request = new ListTransactionsRequest { PropertyRef = propertyRef }; List <Transaction> response = new List <Transaction> { new Transaction(), new Transaction() }; _transactionsGateway.Setup(foo => foo.GetTransactionsByPropertyRef(propertyRef)).Returns(response); var result = _classUnderTest.Execute(request); Assert.AreEqual(response, result.Transactions); }
public void CanGetListOfTransactionsByPropertyReference() { var propertyRef = new Faker().Random.Hash(); var request = new ListTransactionsRequest { PropertyRef = propertyRef }; List <Transaction> response = new List <Transaction> { new Transaction() }; _transactionsGateway.Setup(foo => foo.GetTransactionsByPropertyRef(propertyRef)).Returns(response); var results = _classUnderTest.Execute(request); Assert.NotNull(results); Assert.IsInstanceOf <ListTransactionsResponse>(results); Assert.IsInstanceOf <Transaction>(results.Transactions.First()); Assert.IsInstanceOf <ListTransactionsRequest>(results.Request); Assert.AreEqual(propertyRef, results.Request.PropertyRef); }
/// <summary> /// Lists transactions for specific currency. Permission required: List Balances /// </summary> /// <returns>Array of <typeparamref name="ListTransactionsResult"/></returns> public async Task <PagedResult <ListTransactionsResult> > ListTransactionsAsync(ListTransactionsRequest listTransactionsRequest) { return(await PostAsync <PagedResult <ListTransactionsResult> >("listTransactions", listTransactionsRequest)); }
/// <summary> /// Begin a new asynchornous ListTransactionsRequest /// </summary> /// <param name="requestData"></param> /// <returns></returns> public async Task <ListTransactionsResponse> ListTransactionsRequestAsync(ListTransactionsRequest requestData) { var res = await Requestor.PostStringAsync(Urls.ListTransactionsRequest, JsonHelper.SerializeData(requestData)); return(JsonConvert.DeserializeObject <ListTransactionsResponse>(res.ResponseJson)); }
/// <summary> /// Begin a new ListTransactionsRequest /// </summary> /// <param name="requestData"></param> /// <returns></returns> public ListTransactionsResponse ListTransactionsRequest(ListTransactionsRequest requestData) { return(JsonConvert.DeserializeObject <ListTransactionsResponse>(Requestor.PostString(Urls.ListTransactionsRequest, JsonHelper.SerializeData(requestData)).ResponseJson)); }
public ListTransactionsResponse Execute(ListTransactionsRequest listTransactionsRequest) { var results = _transactionsGateway.GetTransactionsByPropertyRef(listTransactionsRequest.PropertyRef); return(new ListTransactionsResponse(results, listTransactionsRequest, DateTime.Now)); }