public async void SubscribeBook_Fail(Guid bookId, string bookName, Guid userId) { var mockUnitOfWork = new Mock <IUnitOfWork>(); mockUnitOfWork.Setup(a => a.SaveAsync()); var addBookCommandHandler = new SubscribeCommandHandler(_repositoryMock, mockUnitOfWork.Object); var addBookCommand = new SubscribeCommand { BookId = bookId, BookName = bookName, UserId = userId }; await Assert.ThrowsAsync <ValidateException>(() => addBookCommandHandler.HandleAsync(addBookCommand)); }
public async void SubscribeBook_Success() { var mockUnitOfWork = new Mock <IUnitOfWork>(); mockUnitOfWork.Setup(a => a.SaveAsync()); var commandHandler = new SubscribeCommandHandler(_repositoryMock, mockUnitOfWork.Object); var command = new SubscribeCommand { BookId = Guid.NewGuid(), BookName = "Test 1", UserId = Guid.NewGuid() }; await commandHandler.HandleAsync(command); var dbCheck = _repositoryMock as MockBookRepository <Domain.Entities.Subscription>; Assert.Single(dbCheck.Table); Assert.Contains(dbCheck.Table.Values, a => a.UserId == command.UserId && a.BookId == command.BookId && a.BookName == command.BookName); }