예제 #1
0
        public void Create(
            MarkLinkedDoc markLinkedDoc,
            int markId,
            int linkedDocId)
        {
            if (markLinkedDoc == null)
            {
                throw new ArgumentNullException(nameof(markLinkedDoc));
            }
            var foundLinkedDoc = _linkedDocRepo.GetById(linkedDocId);

            if (foundLinkedDoc == null)
            {
                throw new ArgumentNullException(nameof(foundLinkedDoc));
            }
            var foundMark = _markRepo.GetById(markId);

            if (foundMark == null)
            {
                throw new ArgumentNullException(nameof(foundMark));
            }

            var uniqueConstraintViolationCheck = _repository.GetByMarkIdAndLinkedDocId(markId, linkedDocId);

            if (uniqueConstraintViolationCheck != null)
            {
                throw new ConflictException(nameof(uniqueConstraintViolationCheck));
            }

            markLinkedDoc.Mark      = foundMark;
            markLinkedDoc.LinkedDoc = foundLinkedDoc;

            _repository.Add(markLinkedDoc);
        }
예제 #2
0
        public void Create_ShouldFailWithConflict()
        {
            // Arrange
            var conflictMarkId      = _markLinkedDocs[0].Mark.Id;
            var conflictLinkedDocId = _markLinkedDocs[0].LinkedDoc.Id;
            var newMarkLinkedDoc    = new MarkLinkedDoc {
            };

            // Act & Assert
            Assert.Throws <ConflictException>(() => _service.Create(newMarkLinkedDoc,
                                                                    conflictMarkId, conflictLinkedDocId));

            _mockMarkLinkedDocRepo.Verify(mock => mock.Add(It.IsAny <MarkLinkedDoc>()), Times.Never);
        }
예제 #3
0
        public void Create_ShouldFailWithNull_WhenWrongValues()
        {
            // Arrange
            int markId      = _rnd.Next(1, TestData.marks.Count());
            var linkedDocId = _rnd.Next(1, TestData.linkedDocs.Count());

            var newMarkLinkedDoc = new MarkLinkedDoc {
            };

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => _service.Create(null, markId, linkedDocId));
            Assert.Throws <ArgumentNullException>(() => _service.Create(newMarkLinkedDoc, 999, linkedDocId));
            Assert.Throws <ArgumentNullException>(() => _service.Create(newMarkLinkedDoc, markId, 999));

            _mockMarkLinkedDocRepo.Verify(mock => mock.Add(It.IsAny <MarkLinkedDoc>()), Times.Never);
        }
예제 #4
0
        public void Create_ShouldCreateMarkLinkedDoc()
        {
            // Arrange
            int markId      = _rnd.Next(1, TestData.marks.Count());
            var linkedDocId = _rnd.Next(1, TestData.linkedDocs.Count());

            while (_markLinkedDocs.FirstOrDefault(
                       v => v.Mark.Id == markId && v.LinkedDoc.Id == linkedDocId) != null)
            {
                linkedDocId = _rnd.Next(1, TestData.linkedDocs.Count());
            }
            var newMarkLinkedDoc = new MarkLinkedDoc {
            };

            // Act
            _service.Create(newMarkLinkedDoc, markId, linkedDocId);

            // Assert
            _mockMarkLinkedDocRepo.Verify(mock => mock.Add(It.IsAny <MarkLinkedDoc>()), Times.Once);
            Assert.NotNull(newMarkLinkedDoc.LinkedDoc);
            Assert.NotNull(newMarkLinkedDoc.Mark);
        }
예제 #5
0
        public void Add_ShouldAddMarkLinkedDoc()
        {
            // Arrange
            var context = GetContext(TestData.markLinkedDocs);
            var repo    = new SqlMarkLinkedDocRepo(context);

            int markId        = _rnd.Next(1, TestData.marks.Count());
            int linkedDocId   = _rnd.Next(1, TestData.linkedDocs.Count());
            var markLinkedDoc = new MarkLinkedDoc
            {
                Mark      = TestData.marks.SingleOrDefault(v => v.Id == markId),
                LinkedDoc = TestData.linkedDocs.SingleOrDefault(
                    v => v.Id == linkedDocId),
            };

            // Act
            repo.Add(markLinkedDoc);

            // Assert
            Assert.NotNull(repo.GetById(markLinkedDoc.Id));

            context.Database.EnsureDeleted();
            context.Dispose();
        }
예제 #6
0
 public void Delete(MarkLinkedDoc markLinkedDoc)
 {
     _context.MarkLinkedDocs.Remove(markLinkedDoc);
     _context.SaveChanges();
 }
예제 #7
0
 public void Update(MarkLinkedDoc markLinkedDoc)
 {
     _context.Entry(markLinkedDoc).State = EntityState.Modified;
     _context.SaveChanges();
 }
예제 #8
0
 public void Add(MarkLinkedDoc markLinkedDoc)
 {
     _context.MarkLinkedDocs.Add(markLinkedDoc);
     _context.SaveChanges();
 }