public async Task CreateProductOption_Returns_BadResponse_If_Exception_Is_Thrown() { //Arrange Mock <ILogger <ProductsController> > mockLogger = new Mock <ILogger <ProductsController> >(); Mock <IProductService> mockProductService = new Mock <IProductService>(); Guid productId = Guid.Parse("de1287c0-4b15-4a7b-9d8a-dd21b3cafec3"); CreateProductOptionRequest createProductOptionRequest = new CreateProductOptionRequest { Name = "Test Product Option 1", Description = "Description 1", }; mockProductService.Setup(m => m.CreateProductOption(productId, It.IsAny <CreateProductOptionRequest>())) .ThrowsAsync(new Exception("Error occured!")) .Verifiable(); ProductsController productsController = new ProductsController(mockLogger.Object, mockProductService.Object); //Act var response = await productsController.CreateProductOption(productId, createProductOptionRequest) as BadRequestObjectResult; var responseObject = response.Value as ApiResult; //Assert Assert.Equal("An error has occured", responseObject.Error); mockLogger.VerifyAll(); mockProductService.VerifyAll(); }
public async Task CreateProductOption_Returns_OkResponse_Successfully() { //Arrange Mock <ILogger <ProductsController> > mockLogger = new Mock <ILogger <ProductsController> >(); Mock <IProductService> mockProductService = new Mock <IProductService>(); Guid productId = Guid.Parse("de1287c0-4b15-4a7b-9d8a-dd21b3cafec3"); CreateProductOptionRequest createProductOptionRequest = new CreateProductOptionRequest { Name = "Test Product Option 1", Description = "Description 1", }; mockProductService.Setup(m => m.CreateProductOption(productId, It.IsAny <CreateProductOptionRequest>())) .ReturnsAsync(new CreateProductOptionResponse { IsSuccessful = true }) .Verifiable(); ProductsController productsController = new ProductsController(mockLogger.Object, mockProductService.Object); //Act var response = await productsController.CreateProductOption(productId, createProductOptionRequest) as OkObjectResult; var responseObject = response.Value as CreateProductOptionResponse; //Assert Assert.True(responseObject.IsSuccessful); mockLogger.VerifyAll(); mockProductService.VerifyAll(); }
public async void CreateProductOption_Correct_Product_And_Correct_ProductOptions_Returns_No_Content() { // Arrange Product product = TestProduct; string guid = Guid.NewGuid().ToString(); repository.Setup(r => r.FindProductById(It.IsAny <Guid>())) .ReturnsAsync(product); repository.Setup(r => r.Save()) .ReturnsAsync(true); var productOptionCreation = new ProductOptionForCreationDto { Name = "New Product Option", Description = "New Product Description" }; // Act var result = await sut.CreateProductOption(guid, productOptionCreation); // Assert Assert.IsType <NoContentResult>(result); }