public async Task <IActionResult> Put([FromRoute] Guid id, [FromBody] UpdateWorkEntryRequest request) { var entry = request.ToWorkEntry(); entry.Id = id; entry = await _workEntriesService.UpdateAsync(entry); return(entry == null ? (IActionResult)NotFound() : Ok(new WorkEntryDto(entry))); }
public async Task Put_CorrectId_UpdatesEntry() { // Arrange var user = await CreateTestUserAsync(); var entry = TestWorkEntryFactory.CreateWorkEntry(DateTime.UtcNow.Date, user.Id, TestServerFixture.DbContext); await TestServerFixture.DbContext.SaveChangesAsync(); await HttpClient.AuthAs(user.Email, TestUserFactory.TestPassword); // Act var request = new UpdateWorkEntryRequest { Date = DateTime.Now.AddYears(20), HoursSpent = TestWorkEntryFactory.HoursSpent + 5, Notes = "updated note" }; var responseMessage = await HttpClient.PutAsync("/api/WorkEntries/" + entry.Id, request); // Assert Assert.Equal(HttpStatusCode.OK, responseMessage.StatusCode); var responseEntry = await responseMessage.ReadContentAsync <WorkEntryDto>(); // validate response Assert.Equal(entry.Id, responseEntry.Id); Assert.Equal(request.Date, responseEntry.Date); Assert.Equal(request.Notes, responseEntry.Notes); Assert.Equal(request.HoursSpent, responseEntry.HoursSpent); // validate DB entry await TestServerFixture.DbContext.Entry(entry).ReloadAsync(); Assert.Equal(request.Date, entry.Date); Assert.Equal(request.Notes, entry.Notes); Assert.Equal(request.HoursSpent, entry.HoursSpent); }