Пример #1
0
        public async Task <int> Update(long journalId, JournalUpdate updateModel)
        {
            using var unitOfWork = GetUnitOfWork();
            var journal = await unitOfWork.Journals.GetById(journalId);

            if (journal == null)
            {
                throw new JournalNotFoundException($"Journal not found: {journalId}");
            }

            journal.Update(updateModel);
            return(await unitOfWork.Complete());
        }
Пример #2
0
        public async Task Update_JournalNotFound_Returns404()
        {
            // Arrange
            var journalUpdate = new JournalUpdate {
                Title = "Spiffy New Title"
            };

            // Act
            var response = await _client.PatchAsync("api/journals/184732", journalUpdate.ToJson());

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.NotFound);
        }
Пример #3
0
        public async Task Update_JournalFound_Returns204()
        {
            // Arrange
            var journalUpdate = new JournalUpdate {
                Title = "Spiffy New Title"
            };

            // Act
            var response = await _client.PatchAsync("api/journals/1", journalUpdate.ToJson());

            // Assert
            response.EnsureSuccessStatusCode();
        }
Пример #4
0
        public async Task Update_JournalNotFound_ReturnsNotFound()
        {
            // Arrange
            var controller    = PrepControllerForFailedRequests();
            var journalUpdate = new JournalUpdate {
                Title = "Spiffy Title"
            };

            // Act
            var response = await controller.Update(1L, journalUpdate);

            // Assert
            response.Should().BeOfType <NotFoundObjectResult>();
        }
Пример #5
0
        public async Task Update_UpdateSuccessful_ReturnsNoContent()
        {
            // Arrange
            var controller    = PrepControllerForSuccessfulRequests();
            var journalUpdate = new JournalUpdate {
                Title = "Spiffy Title"
            };

            // Act
            var response = await controller.Update(1L, journalUpdate);

            // Assert
            response.Should().BeOfType <NoContentResult>();
        }
Пример #6
0
        public void Update_NoChange_ReturnsFalse()
        {
            // Arrange
            var updateModel = new JournalUpdate
            {
                Title = _journal.Title
            };

            // Act
            var result = _journal.Update(updateModel);

            // Assert
            result.Should().BeFalse();
        }
Пример #7
0
        public void Update_TitleChanged_ReturnsTrue()
        {
            // Arrange
            var updateModel = new JournalUpdate
            {
                Title = "Spiffy New Title"
            };

            // Act
            var result = _journal.Update(updateModel);

            // Assert
            result.Should().BeTrue();
            _journal.Title.Should().Be(updateModel.Title);
        }
Пример #8
0
        public async Task Update_JournalFound_UpdateSuccessful_ReturnsNumberOfUpdatedEntities()
        {
            // Arrange
            var journal = await PrepDbWithJournal();

            var updateModel = new JournalUpdate {
                Title = "Shiny New Title"
            };

            _service = GetJournalService();

            // Act
            var result = await _service.Update(journal.Id, updateModel);

            // Assert
            result.Should().Be(1);
        }
Пример #9
0
        public async Task <IActionResult> Update(long journalId, JournalUpdate update)
        {
            PrepJournalServiceWithUserId();
            try
            {
                await _journalService.Update(journalId, update);
            }
            catch (ArgumentNullException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (JournalNotFoundException ex)
            {
                return(NotFound(ex.Message));
            }

            return(NoContent());
        }