public async Task SoftDeleteProduct_Valid_ActiveIsFalse()
        {
            var brands     = Data.Brands();
            var categories = Data.Categories();
            var products   = Data.Products();
            var context    = new MockProductsContext(products, brands, categories);
            var controller = new ProductsController(context, null);

            var result = await controller.DeleteConfirmed(1);

            var resultContent  = context.GetProductAsync(1).Result;
            var expectedResult = products.FirstOrDefault(p => p.Id == 1);

            if (expectedResult != null)
            {
                expectedResult.Active = false;
            }

            Assert.IsNotNull(expectedResult);
            Assert.IsNotNull(result);
            var productResult = result as RedirectToActionResult;

            Assert.IsNotNull(productResult);

            Assert.AreEqual(expectedResult.Id, resultContent.Id);
            Assert.AreEqual(expectedResult.Name, resultContent.Name);
            Assert.AreEqual(expectedResult.Active, resultContent.Active);
            Assert.AreEqual(expectedResult.BrandId, resultContent.BrandId);
            Assert.AreEqual(expectedResult.CategoryId, resultContent.CategoryId);
            Assert.AreEqual(expectedResult.Description, resultContent.Description);
        }