예제 #1
0
        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));
        }
예제 #2
0
        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);
        }