public async Task Post_CorrectEntryData_CreatesWorkEntry() { // Arrange var user = await CreateTestUserAsync(); await HttpClient.AuthAs(user.Email, TestUserFactory.TestPassword); // Act WorkEntryDto content = new WorkEntryDto() { Date = DateTime.UtcNow.AddYears(2).Date, HoursSpent = TestWorkEntryFactory.HoursSpent, Notes = TestWorkEntryFactory.Notes }; var responseMessage = await HttpClient.PostAsync("/api/WorkEntries", content); // Assert Assert.True(responseMessage.IsSuccessStatusCode); Assert.Equal(HttpStatusCode.Created, responseMessage.StatusCode); var createdEntry = await TestServerFixture.DbContext.WorkEntries.FirstAsync(e => e.UserId == user.Id); Assert.Equal(content.Date, createdEntry.Date); Assert.Equal(content.HoursSpent, createdEntry.HoursSpent); Assert.Equal(content.Notes, createdEntry.Notes); }
public async Task <IActionResult> Post([FromBody] WorkEntryDto workEntry) { if (workEntry is null) { throw new ArgumentNullException(nameof(workEntry)); } var entry = workEntry.ToWorkEntry(); entry = await _workEntriesService.CreateAsync(entry); return(CreatedAtAction(nameof(GetById), new { id = entry.Id }, new WorkEntryDto(entry))); }
public async Task Post_DuplicateDate_BadRequest() { // Arrange var user = await CreateTestUserAsync(); await HttpClient.AuthAs(user.Email, TestUserFactory.TestPassword); // Act WorkEntryDto content = new WorkEntryDto() { Date = DateTime.UtcNow.AddYears(2).Date, HoursSpent = TestWorkEntryFactory.HoursSpent, Notes = TestWorkEntryFactory.Notes }; var responseMessage = await HttpClient.PostAsync("/api/WorkEntries", content); Assert.True(responseMessage.IsSuccessStatusCode); responseMessage = await HttpClient.PostAsync("/api/WorkEntries", content); // Assert Assert.Equal(HttpStatusCode.BadRequest, responseMessage.StatusCode); }