Exemple #1
0
        public async Task DeleteConfirmedTest()
        {
            DatabaseContext context = GetNewInMemoryDbWithData();

            var controller = new ThemeProductsController(context);

            //Get the first ThemeProduct from the In Memory Database
            ThemeProduct ThemeProductBeforeDelete = context.ThemeProducts.FirstOrDefault(t => t.Theme != null && t.Product != null);

            //Make sure it has the correct values
            Assert.Equal(4, ThemeProductBeforeDelete.ThemeProductId);
            Assert.Equal(4, ThemeProductBeforeDelete.ThemeId);
            Assert.Equal(4, ThemeProductBeforeDelete.Id);

            //Delete the first ThemeProduct
            var result = await controller.DeleteConfirmed(ThemeProductBeforeDelete.ThemeId);

            //Get the first ThemeProduct from the In Memory Database after deletion
            ThemeProduct ThemeProductAfterDelete = context.ThemeProducts.FirstOrDefault(t => t.Theme != null && t.Product != null);

            Assert.Equal(5, ThemeProductAfterDelete.ThemeProductId);
            Assert.Equal(5, ThemeProductAfterDelete.ThemeId);
            Assert.Equal(5, ThemeProductAfterDelete.Id);

            var viewResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(viewResult.ControllerName);
            Assert.Equal("Index", viewResult.ActionName);
        }
Exemple #2
0
        public async Task CreateTest()
        {
            DatabaseContext context = GetNewInMemoryDbWithData();

            var controller = new ThemeProductsController(context);

            //Create a new ThemeProduct to add
            ThemeProduct NewThemeProduct = new ThemeProduct()
            {
                ThemeProductId = 7,
                Product        = new Product
                {
                    Id           = 7,
                    Title        = "Nieuw Product",
                    Category     = "Create",
                    Contents     = "Nieuw Product beschrijving",
                    ImageUrl     = "\\images\\products\\fishxd.jpg",
                    Description  = "Product create omschrijving",
                    DownloadLink = "productCreation.pdf",
                },
                Theme = new Theme
                {
                    ThemeId     = 7,
                    ThemeName   = "Nieuw Thema",
                    Description = "Thema create omschrijving",
                    ImageUrl    = "\\images\\themes\\beakers.jpg"
                }
            };

            //Create the new ThemeProduct
            var result = await controller.Create(NewThemeProduct);

            //Make sure it has the correct ThemeProductId
            Assert.Equal(7, context.ThemeProducts.Find(7).ThemeProductId);

            //Make sure the Product has all the correct values
            Assert.Equal(7, context.ThemeProducts.Find(7).Product.Id);
            Assert.Equal("Nieuw Product", context.ThemeProducts.Find(7).Product.Title);
            Assert.Equal("Create", context.ThemeProducts.Find(7).Product.Category);
            Assert.Equal("Nieuw Product beschrijving", context.ThemeProducts.Find(7).Product.Contents);
            Assert.Equal("\\images\\products\\fishxd.jpg", context.ThemeProducts.Find(7).Product.ImageUrl);
            Assert.Equal("Product create omschrijving", context.ThemeProducts.Find(7).Product.Description);
            Assert.Equal("productCreation.pdf", context.ThemeProducts.Find(7).Product.DownloadLink);

            //Make sure the Theme has all the correct values
            Assert.Equal(7, context.ThemeProducts.Find(7).Theme.ThemeId);
            Assert.Equal("Nieuw Thema", context.ThemeProducts.Find(7).Theme.ThemeName);
            Assert.Equal("Thema create omschrijving", context.ThemeProducts.Find(7).Theme.Description);
            Assert.Equal("\\images\\themes\\beakers.jpg", context.ThemeProducts.Find(7).Theme.ImageUrl);

            var viewResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(viewResult.ControllerName);
            Assert.Equal("Index", viewResult.ActionName);
        }
Exemple #3
0
        public async Task DetailsTest()
        {
            DatabaseContext context = GetNewInMemoryDbWithData();

            var controller = new ThemeProductsController(context);

            var result = await controller.Details(4);

            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <ThemeProduct>(viewResult.ViewData.Model);

            //Check if the Theme with id 4 has the correct values
            Assert.Equal(4, model.Theme.ThemeId);
            Assert.Equal("Waterpolo", model.Theme.ThemeName);
            Assert.Equal("Nat", model.Theme.Description);
            Assert.Equal("\\images\\themes\\turkey.jpg", model.Theme.ImageUrl);

            //Check if the Product with id 4 has the correct values
            Assert.Equal(4, model.Product.Id);
            Assert.Equal("Test product4", model.Product.Title);
            Assert.Equal("Mooie omschrijving", model.Product.Description);
            Assert.Equal("\\images\\products\\fish.jpg", model.Product.ImageUrl);
        }
Exemple #4
0
        public async Task IndexTest()
        {
            //Get In Memory Database
            DatabaseContext context = GetNewInMemoryDbWithData();

            //Mock the ThemeProductsController with the In Memory Database as a context
            var controller = new ThemeProductsController(context);

            //Call the Index method
            var result = await controller.Index();

            //Check if the Index method returns a View
            var viewResult = Assert.IsType <ViewResult>(result);
            //Check if the Model passed to the View in the return statement can be made into a List<ThemeProduct>. IEnumerable<ThemeProduct> works. Return class has to be of type ThemeProduct ofcourse
            var model = Assert.IsAssignableFrom <List <ThemeProduct> >(viewResult.ViewData.Model);

            //Make sure that the passed model has only three instances in it, just as initialized in the In Memory Database
            Assert.Equal(3, model.Count);

            //Check if every ThemeProduct has the correct ThemeId and Id(from Product)
            Assert.Equal(4, model[0].ThemeId);
            Assert.Equal(5, model[1].ThemeId);
            Assert.Equal(6, model[2].ThemeId);
            Assert.Equal(4, model[0].Id);
            Assert.Equal(5, model[1].Id);
            Assert.Equal(6, model[2].Id);

            //Check if every ThemeProduct has the correct ThemeName and Product Title
            Assert.Equal("Waterpolo", model[0].Theme.ThemeName);
            Assert.Equal("Basketbal", model[1].Theme.ThemeName);
            Assert.Equal("Voetbal", model[2].Theme.ThemeName);
            Assert.Equal("Test product4", model[0].Product.Title);
            Assert.Equal("Product nummer vijf", model[1].Product.Title);
            Assert.Equal("Product titel", model[2].Product.Title);

            //Check if every Theme and Product description match
            Assert.Equal("Nat", model[0].Theme.Description);
            Assert.Equal("Gooien", model[1].Theme.Description);
            Assert.Equal("Veld", model[2].Theme.Description);
            Assert.Equal("Mooie omschrijving", model[0].Product.Description);
            Assert.Equal("Zeer groot", model[1].Product.Description);
            Assert.Equal("Product omschrijving", model[2].Product.Description);

            //Check if every Theme and Product have the correct ImageUrl
            Assert.Equal("\\images\\themes\\turkey.jpg", model[0].Theme.ImageUrl);
            Assert.Equal("\\images\\themes\\beakers.jpg", model[1].Theme.ImageUrl);
            Assert.Equal("\\images\\themes\\cutterbags.jpg", model[2].Theme.ImageUrl);
            Assert.Equal("\\images\\products\\fish.jpg", model[0].Product.ImageUrl);
            Assert.Equal("\\images\\products\\vi.png", model[1].Product.ImageUrl);
            Assert.Equal("\\images\\products\\groentes.png", model[2].Product.ImageUrl);

            //Check if every Product has the correct Category
            Assert.Equal("Testing", model[0].Product.Category);
            Assert.Equal("Grote test", model[1].Product.Category);
            Assert.Equal("Product categorie", model[2].Product.Category);

            //Check if every Product has the correct Contents
            Assert.Equal("Solid beschrijving", model[0].Product.Contents);
            Assert.Equal("Groot", model[1].Product.Contents);
            Assert.Equal("Product inhoud", model[2].Product.Contents);

            //Check if every Product has the correct DownloadLink
            Assert.Equal("product.pdf", model[0].Product.DownloadLink);
            Assert.Equal("groot.pdf", model[1].Product.DownloadLink);
            Assert.Equal("Product.gov", model[2].Product.DownloadLink);
        }