예제 #1
0
        public async void AdjustBookPrice_Fail()
        {
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(a => a.SaveAsync());
            var mockDb = _repositoryMock as MockBookRepository <Book>;
            var book   = new Book("test1", "author 1", 100);

            mockDb.Table.Add(book.Id, book);

            var adjustBookPriceCommandHandler = new AdjustBookPriceCommandHandler(_repositoryMock, mockUnitOfWork.Object);
            var command = new AdjustBookPriceCommand
            {
                Id            = book.Id,
                PurchasePrice = -1
            };

            await Assert.ThrowsAsync <ValidateException>(() => adjustBookPriceCommandHandler.HandleAsync(command));
        }
예제 #2
0
        public async void AdjustBookPrice_Success()
        {
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(a => a.SaveAsync());
            var mockDb = _repositoryMock as MockBookRepository <Book>;
            var book   = new Book("test1", "author 1", 100);

            mockDb.Table.Add(book.Id, book);

            var adjustBookPriceCommandHandler = new AdjustBookPriceCommandHandler(_repositoryMock, mockUnitOfWork.Object);
            var command = new AdjustBookPriceCommand
            {
                Id            = book.Id,
                PurchasePrice = 150
            };

            await adjustBookPriceCommandHandler.HandleAsync(command);

            var row = mockDb.Table[book.Id];

            Assert.Equal(command.PurchasePrice, row.PurchasePrice);
        }