public async Task UpdateProductCommandHandlerAsync_WithNullParameter_ThrowsException()
        {
            //Arrange
            UpdateProductCommandRequest command = null;

            //Act
            var actualException = await Assert.ThrowsAsync <Exception>(() => _updateProductCommandHandler.Handle(command, new CancellationToken()));

            //Assert
            Assert.Equal(MessageConstants.UpdateProductCommandRequestNull, actualException.Message);
        }
        public async Task UpdateProductCommandHandlerAsync_WithNullId_ThrowsException()
        {
            //Arrange
            var command = new UpdateProductCommandRequest {
                Id = Guid.Empty
            };

            //Act
            var actualException = await Assert.ThrowsAsync <Exception>(() => _updateProductCommandHandler.Handle(command, new CancellationToken()));

            //Assert
            Assert.Equal(MessageConstants.UpdateProductCommandRequestIdNull, actualException.Message);
        }
        public async Task UpdateProductCommandHandlerAsync_WitNonExistingProduct_ThrowsException()
        {
            //Arrange
            var command = new UpdateProductCommandRequest {
                Id = Guid.NewGuid()
            };

            _mockUnitOfWork.Setup(x => x.ProductRepository.GetById(command.Id)).Returns(Task.FromResult <Product>(null));

            //Act
            var actualException = await Assert.ThrowsAsync <Exception>(() => _updateProductCommandHandler.Handle(command, new CancellationToken()));

            //Assert
            Assert.Equal(MessageConstants.ProductNotFound, actualException.Message);
        }
        public async Task UpdateProductCommandHandlerAsync_WithValidParameters_UpdateProduct()
        {
            //Arrange
            var command = new UpdateProductCommandRequest {
                Id = Guid.NewGuid(), Description = "oldDescription", StockQuantity = 5, Title = "oldTitle"
            };
            var product = Product.Create("newDescription", 15, "newTitle", Category.Create(1, "HouseHoldAppliences", 10));

            _mockUnitOfWork.Setup(x => x.ProductRepository.GetById(command.Id)).Returns(Task.FromResult(product));
            _mockUnitOfWork.Setup(x => x.ProductRepository.Update(product)).Verifiable();
            _mockUnitOfWork.Setup(x => x.SaveChanges()).Verifiable();

            //Act
            var actualResult = await _updateProductCommandHandler.Handle(command, new CancellationToken());

            //Assert
            Assert.True(actualResult.IsSuccess);
        }
Example #5
0
        public async Task <ActionResult <UpdateProductCommandResponse> > UpdateProduct(UpdateProductCommandRequest requestModel)
        {
            var productUpdateResult = await Mediator.Send(requestModel);

            return(productUpdateResult);
        }