public Task PutTransaction(string transactionId, PutTransactionDto putTransactionDto) { var transaction = _mapper.Map <Transaction>(putTransactionDto); transaction.TransactionId = transactionId; transaction.UserId = _userContext.UserId; return(_repository.PutTransaction(transaction)); }
public async Task <IActionResult> Put(string transactionId, PutTransactionDto putTransactionDto) { await _transactionHelperService.PutTransaction(transactionId, putTransactionDto); return(Ok()); }
public async Task GivenValidPutTransactionDto_WhenPutTransactionsIsCalled_ThenCorrectTransactionsArePersisted() { var expectedTransactionId = Guid.NewGuid().ToString(); var transaction1 = new Transaction { UserId = UserId, TransactionId = expectedTransactionId, TransactionTimestamp = DateTime.Now.ToString("o"), TransactionType = "expense", Amount = 123.45M, Category = "Groceries", Subcategory = "Meat", Note = "this is a note123" }; var transaction2 = new Transaction { UserId = UserId, TransactionId = "fa00567c-468e-4ccf-af4c-fca1c731915b", TransactionTimestamp = DateTime.Now.ToString("o"), TransactionType = "expense", Amount = 123.45M, Category = "Groceries", Subcategory = "Meat" }; var transactionList = new List <Transaction> { transaction1, transaction2 }; await DynamoDbHelper.WriteTransactionsIntoTable(transactionList); const decimal expectedAmount = 123M; const string expectedCategory = "Food"; const string expectedSubcategory = "Dinner"; var expectedTransactionTimestamp = new DateTimeOffset(new DateTime(2021, 4, 2)).ToString("yyyy-MM-ddThh:mm:ss.FFFK"); const string expectedTransactionType = "expense"; const string expectedPayerPayeeId = "id123"; const string expectedPayerPayeeName = "name123"; const string expectedNote = "This is a new note"; var inputDto = new PutTransactionDto { Amount = expectedAmount, Category = expectedCategory, Subcategory = expectedSubcategory, TransactionTimestamp = expectedTransactionTimestamp, TransactionType = expectedTransactionType, PayerPayeeId = expectedPayerPayeeId, PayerPayeeName = expectedPayerPayeeName, Note = expectedNote }; string inputDtoString = JsonSerializer.Serialize(inputDto); StringContent httpContent = new StringContent(inputDtoString, Encoding.UTF8, "application/json"); var response = await HttpClient.PutAsync($"/api/transactions/{expectedTransactionId}", httpContent); response.EnsureSuccessStatusCode(); var returnedTransaction = await DynamoDbHelper.QueryTable <Transaction>(UserId, expectedTransactionId); var expectedTransaction = new Transaction { UserId = UserId, TransactionId = expectedTransactionId, Amount = expectedAmount, Category = expectedCategory, Subcategory = expectedSubcategory, TransactionTimestamp = expectedTransactionTimestamp, TransactionType = expectedTransactionType, PayerPayeeId = expectedPayerPayeeId, PayerPayeeName = expectedPayerPayeeName, Note = expectedNote }; Assert.Equal(expectedTransaction, returnedTransaction); }