Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 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());
 }
Exemplo n.º 5
0
        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);
        }