Beispiel #1
0
        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);
        }
Beispiel #2
0
        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)));
        }
Beispiel #3
0
        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);
        }