public void Add_throws_db_update_exception_when_item_with_provided_term_name_already_exists() { var itemForAdd = new GlossaryItemAddDto { Term = "Existing term", Definition = "Test definition" }; var existingGlossaryItem = new GlossaryItem { Term = "Existing term", Definition = "Test definition" }; _mapperMock .Setup(e => e.Map <GlossaryItemAddDto, GlossaryItem>(itemForAdd)) .Returns(existingGlossaryItem); _unitOfWorkMock.Setup(e => e.Commit()) .Throws(new DbUpdateException()); _glossaryRepositoryMock.Setup(e => e.AddAsync(existingGlossaryItem)) .Returns(Task.CompletedTask); _glossaryItemsService = new GlossaryItemsService(_glossaryRepositoryMock.Object, _unitOfWorkMock.Object, _mapperMock.Object); Assert.ThrowsAsync <DbUpdateException>(async() => await _glossaryItemsService.AddAsync(itemForAdd)); _unitOfWorkMock.Verify(e => e.Commit(), Times.Once); }
public void Init() { _glossaryRepositoryMock = new Mock <IGlossaryRepository>(MockBehavior.Strict); _unitOfWorkMock = new Mock <IUnitOfWork>(MockBehavior.Strict); _mapperMock = new Mock <IMapper>(); _glossaryItemsService = new GlossaryItemsService(_glossaryRepositoryMock.Object, _unitOfWorkMock.Object, _mapperMock.Object); }
public void Delete_throws_non_existing_item_exception_when_item_not_found() { GlossaryItem glossaryItemNull = null; _glossaryRepositoryMock.Setup(e => e.FindByIdAsync(3)) .Returns(Task.FromResult(glossaryItemNull)); _unitOfWorkMock.Setup(e => e.Commit()); _glossaryItemsService = new GlossaryItemsService(_glossaryRepositoryMock.Object, _unitOfWorkMock.Object, _mapperMock.Object); Assert.ThrowsAsync <NonExistingItemException>(() => _glossaryItemsService.DeleteAsync(3)); _glossaryRepositoryMock.Verify(e => e.FindByIdAsync(3), Times.Once); _unitOfWorkMock.Verify(e => e.Commit(), Times.Never); }
public void Update_throws_non_existing_item_exception_when_item_not_found() { var itemForUpdateDto = new GlossaryItemUpdateDto { Definition = "Updated definition" }; GlossaryItem glossaryItemNull = null; _unitOfWorkMock.Setup(e => e.Commit()); _glossaryRepositoryMock.Setup(e => e.FindByIdAsync(3)) .Returns(Task.FromResult(glossaryItemNull)); _glossaryItemsService = new GlossaryItemsService(_glossaryRepositoryMock.Object, _unitOfWorkMock.Object, _mapperMock.Object); Assert.ThrowsAsync <NonExistingItemException>(async() => await _glossaryItemsService.UpdateAsync(itemForUpdateDto, 3)); _glossaryRepositoryMock.Verify(e => e.FindByIdAsync(3), Times.Once); _unitOfWorkMock.Verify(e => e.Commit(), Times.Never); }