public void ReaderService_AddAsync_ThrowsExceptionIfModelIsIncorrect() { //arrange var mockUnitOfWork = new Mock <IUnitOfWork>(); mockUnitOfWork.Setup(m => m.ReaderRepository.AddAsync(It.IsAny <Reader>())); var readerService = new ReaderService(mockUnitOfWork.Object, UnitTestHelper.CreateMapperProfile()); // Name is empty var reader = new ReaderModel { Name = "", Email = "*****@*****.**", Phone = "999999999", Address = "Glasgow" }; Assert.ThrowsAsync <LibraryException>(async() => await readerService.AddAsync(reader)); // Email is empty reader.Name = "Scrooge McDuck"; reader.Email = ""; Assert.ThrowsAsync <LibraryException>(async() => await readerService.AddAsync(reader)); // Phone is empty reader.Email = "*****@*****.**"; reader.Phone = ""; Assert.ThrowsAsync <LibraryException>(async() => await readerService.AddAsync(reader)); // Address is empty reader.Phone = "999999999"; reader.Address = ""; Assert.ThrowsAsync <LibraryException>(async() => await readerService.AddAsync(reader)); }
public async Task ReaderService_AddAsync_AddModel() { //arrange var mockUnitOfWork = new Mock <IUnitOfWork>(); mockUnitOfWork.Setup(m => m.ReaderRepository.AddAsync(It.IsAny <Reader>())); var readerService = new ReaderService(mockUnitOfWork.Object, UnitTestHelper.CreateMapperProfile()); var newReader = new ReaderModel() { Id = 10, Name = "Test_Adding", Email = "*****@*****.**", Phone = "123789456", Address = "Kyiv, 10" }; //act await readerService.AddAsync(newReader); //assert mockUnitOfWork.Verify(x => x.ReaderRepository.AddAsync( It.Is <Reader>(r => r.Id == newReader.Id && r.Name == newReader.Name && r.Email == newReader.Email && r.ReaderProfile.Phone == newReader.Phone && r.ReaderProfile.Address == newReader.Address)), Times.Once); mockUnitOfWork.Verify(x => x.SaveAsync(), Times.Once); }