Exemple #1
0
        public void Create_TagNameAlreadyExists_ThrowsTagNameAlreadyExistsException()
        {
            // Arrange
            string tagName = "tag_name";

            Tag tag = new Tag { TagId = 1, Name = tagName };

            // Arrange - mock tagRepository
            Mock<ITagRepository> tagRepositoryMock = new Mock<ITagRepository>();

            tagRepositoryMock.Setup(r => r.GetByName(tagName))
            .Returns(tag);

            // Arrange - mock unitOfWork
            Mock<IUnitOfWork> unitOfWorkMock = new Mock<IUnitOfWork>();

            unitOfWorkMock.SetupGet(u => u.TagRepository)
            .Returns(tagRepositoryMock.Object);

            // Arrange - create target
            ITagService target = new TagService(unitOfWorkMock.Object, this._tagValidationMock.Object);

            // Act and Assert
            Assert.Throws<TagNameAlreadyExistsException>(() => target.Create(tagName));

            tagRepositoryMock.Verify(r => r.GetByName(tagName), Times.Once);
            tagRepositoryMock.Verify(r => r.Insert(It.Is<Tag>(t => t.Name == tagName)), Times.Never);

            unitOfWorkMock.Verify(r => r.Save(), Times.Never);
        }
Exemple #2
0
        public void Create_TagNameIsEmpty_ThrowsArgumentException()
        {
            // Arrange
            ITagService target = new TagService(new Mock<IUnitOfWork>().Object, this._tagValidationMock.Object);

            // Act and Assert
            Assert.Throws<ArgumentException>(() => target.Create(""));
        }
Exemple #3
0
        public void Create_TagNameFormatIsInvalid_ThrowsInvalidTagNameFormatException()
        {
            // Arrange
            string tagName = "invalid_tag_name";

            this._tagValidationMock.Setup(v => v.IsValidName(tagName))
            .Returns(false);

            ITagService target = new TagService(new Mock<IUnitOfWork>().Object, this._tagValidationMock.Object);

            // Act and Assert
            Assert.Throws<InvalidTagNameFormatException>(() => target.Create(tagName));

            this._tagValidationMock.Verify(v => v.IsValidName(tagName), Times.Once);
        }
Exemple #4
0
        public void Create_TagNameIsValid_CreatesTag()
        {
            // Arrange
            string tagName = "tag_name";

            // Arrange - mock tagRepository
            Mock<ITagRepository> tagRepositoryMock = new Mock<ITagRepository>();

            // Arrange - mock unitOfWork
            Mock<IUnitOfWork> unitOfWorkMock = new Mock<IUnitOfWork>();

            unitOfWorkMock.SetupGet(u => u.TagRepository)
            .Returns(tagRepositoryMock.Object);

            // Arrange - create target
            ITagService target = new TagService(unitOfWorkMock.Object, this._tagValidationMock.Object);

            // Act
            Tag createdTag = target.Create(tagName);

            // Assert
            Assert.IsNotNull(createdTag);
            Assert.AreEqual(tagName, createdTag.Name);

            tagRepositoryMock.Verify(r => r.Insert(It.Is<Tag>(t => t.Name == tagName)), Times.Once);

            unitOfWorkMock.Verify(r => r.Save(), Times.Once);
        }