public void Update_ShouldFailWithNull_WhenWrongValues() { // Arrange int id = _rnd.Next(1, _markLinkedDocs.Count()); short newLinkedDocId = (Int16)(_rnd.Next(1, TestData.linkedDocs.Count())); while (newLinkedDocId == _markLinkedDocs[id].LinkedDoc.Id) { newLinkedDocId = (Int16)(_rnd.Next(1, TestData.linkedDocs.Count())); } var newMarkLinkedDocRequest = new MarkLinkedDocUpdateRequest { LinkedDocId = newLinkedDocId, }; var wrongMarkLinkedDocRequest = new MarkLinkedDocUpdateRequest { LinkedDocId = 999, }; // Act & Assert Assert.Throws <ArgumentNullException>(() => _service.Update(id, null)); Assert.Throws <ArgumentNullException>(() => _service.Update(999, newMarkLinkedDocRequest)); Assert.Throws <ArgumentNullException>(() => _service.Update(id, wrongMarkLinkedDocRequest)); _mockMarkLinkedDocRepo.Verify(mock => mock.Update(It.IsAny <MarkLinkedDoc>()), Times.Never); }
public void Update_ShouldUpdateMarkLinkedDoc() { // Arrange int id = _rnd.Next(1, _markLinkedDocs.Count()); int markId = _markLinkedDocs.FirstOrDefault( v => v.Id == id).Mark.Id; short newLinkedDocId = (Int16)(_rnd.Next(1, TestData.linkedDocs.Count())); while (_markLinkedDocs.FirstOrDefault( v => v.Mark.Id == markId && v.LinkedDoc.Id == newLinkedDocId) != null) { newLinkedDocId = (Int16)(_rnd.Next(1, TestData.linkedDocs.Count())); } var newMarkLinkedDocRequest = new MarkLinkedDocUpdateRequest { LinkedDocId = newLinkedDocId, }; // Act _service.Update(id, newMarkLinkedDocRequest); // Assert _mockMarkLinkedDocRepo.Verify(mock => mock.Update(It.IsAny <MarkLinkedDoc>()), Times.Once); Assert.Equal(newLinkedDocId, _markLinkedDocs.SingleOrDefault(v => v.Id == id).LinkedDoc.Id); }
public void Update_ShouldFailWithConflict() { // Arrange var conflictMarkId = _markLinkedDocs[0].Mark.Id; var conflictLinkedDocId = _markLinkedDocs[0].LinkedDoc.Id; var id = _markLinkedDocs[1].Id; var newMarkLinkedDocRequest = new MarkLinkedDocUpdateRequest { LinkedDocId = conflictLinkedDocId, }; // Act & Assert Assert.Throws <ConflictException>(() => _service.Update(id, newMarkLinkedDocRequest)); _mockMarkLinkedDocRepo.Verify(mock => mock.Update(It.IsAny <MarkLinkedDoc>()), Times.Never); }
public ActionResult Update( int id, [FromBody] MarkLinkedDocUpdateRequest markLinkedDocRequest) { if (!markLinkedDocRequest.Validate()) { return(BadRequest()); } try { _service.Update(id, markLinkedDocRequest); } catch (ArgumentNullException) { return(NotFound()); } catch (ConflictException) { return(Conflict()); } return(NoContent()); }
public void Update(int id, MarkLinkedDocUpdateRequest markLinkedDocRequest) { if (markLinkedDocRequest == null) { throw new ArgumentNullException(nameof(markLinkedDocRequest)); } var foundMarkLinkedDoc = _repository.GetById(id); if (foundMarkLinkedDoc == null) { throw new ArgumentNullException(nameof(foundMarkLinkedDoc)); } if (markLinkedDocRequest.LinkedDocId != null) { var linkedDoc = _linkedDocRepo.GetById(markLinkedDocRequest.LinkedDocId.GetValueOrDefault()); if (linkedDoc == null) { throw new ArgumentNullException(nameof(linkedDoc)); } var uniqueConstraintViolationCheck = _repository.GetByMarkIdAndLinkedDocId( foundMarkLinkedDoc.Mark.Id, markLinkedDocRequest.LinkedDocId.GetValueOrDefault()); if (uniqueConstraintViolationCheck != null) { throw new ConflictException(nameof(uniqueConstraintViolationCheck)); } foundMarkLinkedDoc.LinkedDoc = linkedDoc; } if (markLinkedDocRequest.Note != null) { foundMarkLinkedDoc.Note = markLinkedDocRequest.Note; } _repository.Update(foundMarkLinkedDoc); }