public void Test_Delete_ProductOption_Returns_Success()
        {
            int productId = 1, optionId = 3;
            var response = _productController.DeleteProductOption(productId, optionId);

            Assert.IsType <StatusCodeResult>(response);
            var statusCode = response as StatusCodeResult;

            Assert.Equal(204, statusCode.StatusCode);
        }
        public async Task DeleteProductOption_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");
            Guid optionId  = Guid.Parse("845403f2-5179-4efb-820e-c1c120ed5930");

            mockProductService.Setup(m => m.DeleteProductOption(productId, optionId))
            .ThrowsAsync(new Exception("Error occured!"))
            .Verifiable();

            ProductsController productsController = new ProductsController(mockLogger.Object, mockProductService.Object);

            //Act
            var response = await productsController.DeleteProductOption(productId, optionId) as BadRequestObjectResult;

            var responseObject = response.Value as ApiResult;

            //Assert
            Assert.Equal("An error has occured", responseObject.Error);

            mockLogger.VerifyAll();
            mockProductService.VerifyAll();
        }
        public async Task DeleteProductOption_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");
            Guid optionId  = Guid.Parse("845403f2-5179-4efb-820e-c1c120ed5930");

            mockProductService.Setup(m => m.DeleteProductOption(productId, optionId))
            .ReturnsAsync(new DeleteProductOptionResponse
            {
                IsSuccessful = true
            })
            .Verifiable();

            ProductsController productsController = new ProductsController(mockLogger.Object, mockProductService.Object);

            //Act
            var response = await productsController.DeleteProductOption(productId, optionId) as OkObjectResult;

            var responseObject = response.Value as DeleteProductOptionResponse;

            //Assert
            Assert.True(responseObject.IsSuccessful);

            mockLogger.VerifyAll();
            mockProductService.VerifyAll();
        }
        public void DeleteProductOptionTest()
        {
            Guid productId       = Guid.NewGuid();
            Guid productOptionId = Guid.NewGuid();
            var  productsService = new Mock <IProductsService>();

            productsService
            .Setup(repo => repo.DeleteProductOption(productId, productOptionId));
            ProductsController productsController = new ProductsController(productsService.Object, Mock.Of <ILogger <ProductsController> >());

            ActionResult result = productsController.DeleteProductOption(productId, productOptionId);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(NoContentResult));
        }
Пример #5
0
        public async void DeleteProductOption_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);

            ProductOption productOption = TestProductOption;
            string        guid2         = Guid.NewGuid().ToString();

            repository.Setup(r => r.FindOptionByProductIdAndOptionId(It.IsAny <Guid>(), It.IsAny <Guid>()))
            .ReturnsAsync(productOption);

            // Act
            var result = await sut.DeleteProductOption(guid, guid2);

            // Assert
            Assert.IsType <NoContentResult>(result);
        }