public async Task GetProductOptionByProductIdAndOptionId_Returns_OkResponse_Successfully() { //Arrange Mock <ILogger <ProductsController> > mockLogger = new Mock <ILogger <ProductsController> >(); Mock <IProductService> mockProductService = new Mock <IProductService>(); GetProductOptionsByProductIdAndOptionsIdResponse getProductOptionsByProductIdAndOptionsIdResponse = new GetProductOptionsByProductIdAndOptionsIdResponse { Id = Guid.Parse("de1287c0-4b15-4a7b-9d8a-dd21b3cafec3"), Name = "Test product option name", Description = "Test description", }; mockProductService.Setup(m => m.GetProductOptionsByProductIdAndOptionsId(It.IsAny <Guid>(), It.IsAny <Guid>())) .ReturnsAsync(getProductOptionsByProductIdAndOptionsIdResponse) .Verifiable(); ProductsController productsController = new ProductsController(mockLogger.Object, mockProductService.Object); //Act var response = await productsController.GetProductOptionByProductIdAndOptionId(Guid.Parse("de1287c0-4b15-4a7b-9d8a-dd21b3cafec3"), Guid.Parse("845403f2-5179-4efb-820e-c1c120ed5930")) as OkObjectResult; var responseObject = response.Value as GetProductOptionsByProductIdAndOptionsIdResponse; //Assert Assert.Equal(getProductOptionsByProductIdAndOptionsIdResponse.Id, responseObject.Id); Assert.Equal(getProductOptionsByProductIdAndOptionsIdResponse.Name, responseObject.Name); Assert.Equal(getProductOptionsByProductIdAndOptionsIdResponse.Description, responseObject.Description); mockLogger.VerifyAll(); mockProductService.VerifyAll(); }
public async Task <GetProductOptionsByProductIdAndOptionsIdResponse> GetProductOptionsByProductIdAndOptionsId(Guid productId, Guid optionId) { var productOption = await _productRepository.GetProductOptionsByProductIdAndOptionsId(productId, optionId); if (productOption == null) { _logger.LogInformation($"No product options found with optionsId: {optionId} and productId: {productId}"); return(null); } var getProductOptionsByProductIdAndOptionsIdResponse = new GetProductOptionsByProductIdAndOptionsIdResponse { Name = productOption.Name, Description = productOption.Description, Id = productOption.Id }; return(getProductOptionsByProductIdAndOptionsIdResponse); }