public async Task Post_product_response_bad_request_with_message_when_product_has_no_category_or_manufacturer()
        {
            var cancellationToken = new CancellationToken();
            //Arrange

            var productViewModel = new ProductViewModel
            {
                CategoryId     = 0,
                ManufacturerId = 0,
                ProductImages  = new ProductImage[1]
                {
                    new ProductImage
                    {
                        Id        = 1,
                        ImageName = "test"
                    }
                }
            };
            // Act
            var productController = new ProductController(_catalogContextFixture.Context,
                                                          _fileUtilityFixture.FileUtility, _settings, _catalogIntegrationEventServiceMock.Object);
            var response = await productController.AddNewProductAsync(productViewModel, cancellationToken);

            var badRequestResponse = Assert.IsType <BadRequestObjectResult>(response);

            Assert.Contains("Message", badRequestResponse.Value.ToString());
        }
        public async Task Post_product_response_bad_request_with_message_when_product_exists()
        {
            var cancellationToken = new CancellationToken();
            //Arrange
            var expectedProduct = await _catalogContextFixture.Context.Products.ToListAsync(cancellationToken);

            if (expectedProduct.IsNullOrEmpty())
            {
                expectedProduct = await SeedProduct(cancellationToken);
            }

            var productToAdd = new ProductViewModel
            {
                ProductImages  = GetPreconfiguredProductImage(expectedProduct.First().Id).ToArray(),
                Name           = expectedProduct.First().Name,
                CategoryId     = expectedProduct.First().CategoryId,
                ManufacturerId = expectedProduct.First().ManufacturerId
            };
            // Act
            var productController = new ProductController(_catalogContextFixture.Context,
                                                          _fileUtilityFixture.FileUtility, _settings, _catalogIntegrationEventServiceMock.Object);
            var response = await productController.AddNewProductAsync(productToAdd, cancellationToken);

            var badRequestResponse = Assert.IsType <BadRequestObjectResult>(response);

            Assert.Contains("Message", badRequestResponse.Value.ToString());
        }
        public async Task Post_product_response_bad_request_with_message_when_product_image_is_empty()
        {
            var cancellationToken = new CancellationToken();
            // Act
            var productController = new ProductController(_catalogContextFixture.Context,
                                                          _fileUtilityFixture.FileUtility, _settings, _catalogIntegrationEventServiceMock.Object);
            var response =
                await productController.AddNewProductAsync(GetTestProductViewModelEmptyImage(), cancellationToken);

            var badRequestResponse = Assert.IsType <BadRequestObjectResult>(response);

            Assert.Contains("Message", badRequestResponse.Value.ToString());
        }