Exemplo n.º 1
0
        public void ProductController_AddsProductToIndexModelData_Collection()
        {
            // Arrange
            SetUpTheMockDb();

            ProductsController controller  = new ProductsController(mock.Object);
            Product            testProduct = new Product();

            testProduct.Description = "test product";

            // Act
            controller.Create(testProduct);
            ViewResult indexView  = new ProductsController().Index() as ViewResult;
            var        collection = indexView.ViewData.Model as List <Product>;

            // Assert
            CollectionAssert.Contains(collection, testProduct);
        }
Exemplo n.º 2
0
        public void DB_CreatesNewEntries_Collection()
        {
            // Arrange
            ProductsController controller  = new ProductsController(db);
            Product            testProduct = new Product();

            testProduct.Name        = "Test Product";
            testProduct.Cost        = 10;
            testProduct.Description = "Test Desc";


            // Act
            controller.Create(testProduct);
            var collection = (controller.Index() as ViewResult).ViewData.Model as List <Product>;

            // Assert
            CollectionAssert.Contains(collection, testProduct);
        }
        public async Task Create_ProductReturns_RedirectToActionResult()
        {
            mock       = new Mock <IProducts>();
            controller = new ProductsController(mock.Object);
            Product newProduct = new Product
            {
                Name  = "Bread",
                Price = 15
            };

            var result = await controller.Create(newProduct);

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

            Assert.Null(redirectToActionResult.ControllerName);
            Assert.Equal("Index", redirectToActionResult.ActionName);
            mock.Verify(p => p.AddAsync(newProduct));
        }
        public void Mock_PostViewResultCreate_ViewResult()
        {
            // Arrange
            Product testProduct = new Product
            {
                ProductId   = 1,
                Description = "Wash the dog"
            };

            DbSetup();
            ProductsController controller = new ProductsController(mock.Object);

            // Act
            var resultView = controller.Create(testProduct) as ViewResult;


            // Assert
            Assert.IsInstanceOfType(resultView, typeof(ViewResult));
        }
        public async Task CreateProduct_ShouldAddProductIntoDb()
        {
            string name    = Guid.NewGuid().ToString();
            var    product = new Repository.Product
            {
                Name          = name,
                Description   = "DESC",
                Price         = 333,
                DeliveryPrice = 11
            };
            await _productController.Create(product);

            var response = await _productController.SearchByName(name);

            ObjectContent content = response.Content as ObjectContent;

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.AreEqual(name, ((List <Product>)content.Value)[0].Name);
        }
Exemplo n.º 6
0
        public void DB_EditEntry_Test()
        {
            ProductsController controller = new ProductsController(db);

            Product testProduct = new Product();

            testProduct.Name    = "Pepperoni";
            testProduct.Cost    = 12.75;
            testProduct.Country = "USA";

            controller.Create(testProduct);

            testProduct.Name = "Fromage";
            controller.Edit(testProduct);

            var collection = (controller.Index() as ViewResult).ViewData.Model as List <Product>;

            Assert.AreEqual(testProduct.Name, "Fromage");
        }
        public void Mock_PostViewResultCreate_ViewResult()
        {
            // Arrange
            Product testProduct = new Product
            {
                ProductId = 1,
                Name      = "Giant Gummi"
            };

            DbSetup();
            ProductsController controller = new ProductsController(mock.Object);

            // Act
            var resultView = controller.Create(testProduct) as RedirectToActionResult;


            // Assert
            Assert.IsInstanceOfType(resultView, typeof(RedirectToActionResult));
        }
Exemplo n.º 8
0
        public void DB_EditsEntries_Collection()
        {
            ProductsController controller  = new ProductsController(db);
            Product            testProduct = new Product();

            testProduct.Name        = "5 Lb. Bag (Assorted Flavors)";
            testProduct.Price       = 12.99m;
            testProduct.Description = "Yummi Gummis!";
            testProduct.ProductId   = 1;

            // Act
            controller.Create(testProduct);
            testProduct.Name = "2.5 Lb. Bag (Assorted Flavors)";
            controller.Edit(testProduct);
            var foundProduct = (controller.Details(testProduct.ProductId) as ViewResult).ViewData.Model as Product;

            // Assert
            Assert.AreEqual(foundProduct.Name, "2.5 Lb. Bag (Assorted Flavors)");
        }
Exemplo n.º 9
0
        public async Task Create_ReturnsViewResultWithModel()
        {
            var product = new Product
            {
                Name        = "Keyboard",
                Description = "",
                Quantity    = 10,
            };

            var mockService = new Mock <IEntityService <Product> >();
            var controller  = new ProductsController(mockService.Object);

            var result = await controller.Create(product); // as ViewResult;

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

            Assert.NotNull(viewResult);
            Assert.Equal(nameof(controller.Index), viewResult.ActionName);
        }
Exemplo n.º 10
0
        public void DB_CreatesNewReviews_Collection()
        {
            //arrange
            ReviewsController  controller      = new ReviewsController(db);
            ProductsController otherController = new ProductsController(pdb);
            Product            testProduct     = new Product("Sponge", "Sponges up liquids", (decimal)1.99);
            Review             testReview      = new Review("bob", "this is a great sponge", 5);

            //act
            otherController.Create(testProduct);
            testReview.ProductId = testProduct.ProductId;
            controller.Create(testReview);


            var collection = (controller.Index() as ViewResult).ViewData.Model as List <Review>;

            //assert
            CollectionAssert.Contains(collection, testReview);
        }
        public void Create_GetRequest_ReturnViewResult()
        {
            var mockProductService         = new Mock <IProductService>();
            var mockCategoryService        = new Mock <ICategoryService>();
            var mockCategoryProductService = new Mock <ICategoryAndProductService>();

            var controller = new ProductsController(mockProductService.Object,
                                                    mockCategoryService.Object,
                                                    mockCategoryProductService.Object);

            mockCategoryService.Setup(x => x.GetAllCategories()).Returns(GetCategories());

            var result     = controller.Create();
            var vm         = result as ViewResult;
            var categories = ((ProductCreateEditFormViewModel)vm.ViewData.Model).Categories.ToList();

            Assert.IsInstanceOfType(result, typeof(ViewResult));
            Assert.AreEqual(4, categories.Count);
            Assert.AreEqual(3, categories[2].Id);
        }
        public async Task Create_ReturnsARedirectToIndexWhenProductHasBeenCreated()
        {
            //Arrange
            var products = new Products {
                ProductId = 1
            };
            var mockProductsService = new Mock <IProductsService>();

            mockProductsService.Setup(srv => srv.Create(products)).Returns(Task.CompletedTask);
            var controller = new ProductsController(mockProductsService.Object, null, null);

            // Act
            var result = await controller.Create(products);

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

            Assert.Equal("Index", redirectToActionResult.ActionName);
        }
        public void DB_EditSpecificEntry_Product()
        {
            ProductsController controller  = new ProductsController(db);
            Product            testProduct = new Product
            {
                Name        = "Gummi Couch",
                Description = "Maybe not practical, but definitely possible.",
                Cost        = 299.99m
            };

            controller.Create(testProduct, null);
            var     collection    = (controller.Index() as ViewResult).ViewData.Model as List <Product>;
            Product productToEdit = (controller.Edit(collection[0].ProductId) as ViewResult).ViewData.Model as Product;

            productToEdit.Description = "You'll never lose your change now.";
            controller.Edit(productToEdit);
            var collection2 = (controller.Index() as ViewResult).ViewData.Model as List <Product>;

            Assert.AreNotEqual("Maybe not practical, but definitely possible.", collection2[0].Description);
        }
        public void Create_ShouldReturnViewResult()
        {
            // Arrange
            var productServiceMock       = new Mock <IProductService>();
            var authorizationServiceMock = new Mock <IAuthorizationService>();
            var mockUserStore            = new Mock <IUserStore <IdentityUser> >();
            var userManager = new Mock <UserManager <IdentityUser> >(mockUserStore.Object, null, null, null, null, null, null, null, null);

            var productsController = new ProductsController(
                productServiceMock.Object,
                authorizationServiceMock.Object,
                userManager.Object
                );

            // Act
            IActionResult actionResult = productsController.Create();

            // Assert
            actionResult.ShouldBeOfType <ViewResult>();
        }
Exemplo n.º 15
0
        public void Create_WithValidProduct_ShouldReturnView()
        {
            //Arrange
            bool serviceCalled = false;

            var mockRepository = new Mock <IAdminCategoryService>();

            var mockRepositoryProduct = new Mock <IAdminProductService>();

            mockRepositoryProduct
            .Setup(service => service.CreateProductAsync(It.IsAny <ProductCreationBindingModel>()))
            .Callback(() => serviceCalled = true);

            var controller = new ProductsController(mockRepositoryProduct.Object, mockRepository.Object);
            //Act
            var result = controller.Create(new ProductCreationBindingModel());

            //Assert
            Assert.IsTrue(serviceCalled);
        }
Exemplo n.º 16
0
        public void DB_CreatesNewEntries_Collection()
        {
            // Arrange
            ProductsController productController = new ProductsController(productDb);
            ReviewsController  reviewController  = new ReviewsController(reviewDb);
            Product            testProduct       = new Product {
                ProductId = 1, Name = "Giant Gummi", Description = "12 oz. gummi bear", Cost = 4.99m, ImageUrl = "https://i.ytimg.com/vi/1CbfG0epWHo/maxresdefault.jpg"
            };
            Review testReview = new Review {
                ReviewId = 1, Title = "Love It!", Author = "Sara", Content_Body = "This is the best gummy bear I have ever had.", Rating = 5, ProductId = 1
            };

            // Act
            productController.Create(testProduct);
            reviewController.Create(testReview);
            var collection = (reviewController.Index() as ViewResult).ViewData.Model as List <Review>;

            // Assert
            CollectionAssert.Contains(collection, testReview);
        }
        public async Task CreateSuccess()
        {
            var productModel = new ProductModel();
            var product      = new Product();

            var validator = new Mock <IValidator>(MockBehavior.Strict);

            validator
            .Setup(x => x.ValidateAsync(productModel))
            .ReturnsAsync(ValidationResult.New)
            .Verifiable("Validation operation not performed");

            var apiLayerTranslator = new Mock <IApiLayerTranslator>(MockBehavior.Strict);

            apiLayerTranslator
            .Setup(x => x.Translate(productModel))
            .Returns(product)
            .Verifiable("Translation operation not performed");

            var productsPortal = new Mock <IProductsPortal>(MockBehavior.Strict);

            productsPortal
            .Setup(x => x.UpsertAsync(new[] { product }))
            .Returns(Task.CompletedTask)
            .Verifiable("process operation not performed");

            var controller = new ProductsController(
                logger: _logger,
                productsPortal: productsPortal.Object,
                apiLayerTranslator: apiLayerTranslator.Object,
                validator: validator.Object);


            var result = await controller.Create(productModel);


            Assert.That(result, Is.TypeOf <OkObjectResult>());
            validator.VerifyAll();
            apiLayerTranslator.VerifyAll();
            productsPortal.VerifyAll();
        }
        public async Task Create_ReturnViewResult_GivenInvalidModel()
        {
            //Arrange
            int productId             = 1;
            int categoriesId          = 2;
            int suppliersId           = 3;
            var mockProductsService   = new Mock <IProductsService>();
            var mockCategoriesService = new Mock <ICategoriesService>();

            mockCategoriesService.Setup(srv => srv.GetCategoriesSelectListAsync(categoriesId))
            .ReturnsAsync(new SelectList(new List <Categories> {
                new Categories {
                    CategoryId = categoriesId
                }
            }));
            var mockSuppliersService = new Mock <ISuppliersService>();
            var controller           = new ProductsController(mockProductsService.Object, mockCategoriesService.Object, mockSuppliersService.Object);

            mockSuppliersService.Setup(srv => srv.GetSuppliersSelectListAsync(suppliersId))
            .ReturnsAsync(new SelectList(new List <Suppliers> {
                new Suppliers {
                    SupplierId = suppliersId
                }
            }));
            controller.ModelState.AddModelError("error", "some error");
            var products = new Products
            {
                ProductId  = productId,
                SupplierId = suppliersId,
                CategoryId = categoriesId
            };

            // Act
            var result = await controller.Create(products);

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

            Assert.IsAssignableFrom <SelectList>(viewResult.ViewData["CategoryId"]);
            Assert.IsAssignableFrom <SelectList>(viewResult.ViewData["SupplierId"]);
        }
        public async Task Create_ReturnViewResult()
        {
            //Arrange
            var mockProductsService   = new Mock <IProductsService>();
            var mockCategoriesService = new Mock <ICategoriesService>();

            mockCategoriesService.Setup(srv => srv.GetCategoriesSelectListAsync(null)).ReturnsAsync(new SelectList(new List <Categories>()));
            var mockSuppliersService = new Mock <ISuppliersService>();

            mockSuppliersService.Setup(srv => srv.GetSuppliersSelectListAsync(null)).ReturnsAsync(new SelectList(new List <Suppliers>()));
            var controller = new ProductsController(mockProductsService.Object, mockCategoriesService.Object, mockSuppliersService.Object);

            // Act
            var result = await controller.Create();

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

            Assert.IsAssignableFrom <SelectList>(viewResult.ViewData["CategoryId"]);
            Assert.IsAssignableFrom <SelectList>(viewResult.ViewData["SupplierId"]);
        }
Exemplo n.º 20
0
        public void CreateSaleTest()
        {
            // Arrange
            string   usersId      = "test1";
            string   description  = "A generic football";
            int      currentPrice = 100;
            DateTime endTime      = DateTime.Now.AddDays(2);

            string name            = "football";
            int    startingPrice   = 50;
            string location        = "testlocation";
            int    productTypes_id = 9;

            int productsId = productsController.Create(name, startingPrice, location, productTypes_id);

            // Act
            bool returnValue = salesController.Create(usersId, productsId, description, currentPrice, endTime);

            // Assert
            Assert.AreEqual(true, returnValue, "Sale created correctly");
        }
        public void Create_PostValidModel_RedirectsToActionIndex()
        {
            var mockProductService         = new Mock <IProductService>();
            var mockCategoryService        = new Mock <ICategoryService>();
            var mockCategoryProductService = new Mock <ICategoryAndProductService>();

            var controller = new ProductsController(mockProductService.Object,
                                                    mockCategoryService.Object,
                                                    mockCategoryProductService.Object);

            var productCreateEditFormViewModel = new ProductCreateEditFormViewModel
            {
                Name        = "Test Product",
                Description = "Test Product Description",
                CategoryId  = 1
            };

            var result = controller.Create(productCreateEditFormViewModel) as RedirectToRouteResult;

            Assert.AreEqual(result.RouteValues["Action"], "Index");
        }
Exemplo n.º 22
0
        public void Mock_PostViewResultCreate_ViewResult()
        {
            // Arrange
            Product testProduct = new Product
            {
                ProductId   = 1,
                Name        = "1lb Gummy Bear",
                Cost        = 10,
                Description = "BIG OLE BEAR"
            };

            DbSetup();
            ProductsController controller = new ProductsController(mock.Object);

            // Act
            var resultView = controller.Create(testProduct);


            // Assert
            Assert.IsInstanceOfType(resultView, typeof(RedirectToActionResult));
        }
        public void Create()
        {
            // Arrange
            ProductsController controller = new ProductsController();
            Product            product    = new Product()
            {
                Id         = 10,
                Name       = "Shoes",
                Category   = "Common",
                Price      = 1000,
                Quantity   = 1,
                Short_desc = "Shoes",
                Small_img  = "image"
            };

            // Act
            ViewResult result = controller.Create(product, null, null) as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
Exemplo n.º 24
0
        public void Mock_PostViewResultCreate_ViewResult()
        {
            //Arrange
            Product testProduct = new Product
            {
                Id          = 1,
                Cost        = 10,
                Description = "Dummy Bear shaped lollipop with rainbow sprinkles",
                Name        = "Dummy Bear Pop"
            };

            DbSetup();
            ProductsController controller = new ProductsController(mock.Object);

            //Act
            var resultView = controller.Create(testProduct) as ViewResult;


            //Assert
            Assert.IsInstanceOfType(resultView, typeof(ViewResult));
        }
Exemplo n.º 25
0
        public void Test_ProductsController_Create_CallsAddOrUpdate()
        {
            // Arrange
            Mock <IProductRepository> mockProductRepo = new Mock <IProductRepository>();
            ProductsController        controller      = new ProductsController(mockProductRepo.Object);

            Product p = new Product
            {
                Title       = "Blueberry Cookie",
                Description = "100 grams of delicious crunchyness!!!",
                ImgUrl      = "Content/img/products/12.jpg",
                Price       = 20,
                StockCount  = 253
            };

            // Act
            controller.Create(p);

            // Assert
            mockProductRepo.Verify(mock => mock.AddOrUpdate(p));
        }
Exemplo n.º 26
0
        public void Mock_PostViewResultCreate_ViewResult()
        {
            // Arrange
            Product testProduct = new Product
            {
                ProductId   = 1,
                Name        = "5 Lb. Bag (Assorted Flavors)",
                Price       = 12.99m,
                Description = "Yummi Gummis!"
            };

            DbSetup();
            ProductsController controller = new ProductsController(mock.Object);

            // Act
            var resultView = controller.Create(testProduct) as ViewResult;


            // Assert
            Assert.IsInstanceOfType(resultView, typeof(ViewResult));
        }
        public void DB_CreateNewEntryPOST_Test()
        {
            //Arange
            var productController = new ProductsController(db);
            var testProduct       = new Product()
            {
                Name            = "Kitfo",
                Cost            = 10,
                CountryOfOrigin = "Ethiopia",
                ProductImg      = null
            };

            //Act
            productController.Create(testProduct);

            var indexViewResult = productController.Index() as ViewResult;
            var collection      = indexViewResult.ViewData.Model as List <Product>;

            //Assert
            CollectionAssert.Contains(collection, testProduct);
        }
Exemplo n.º 28
0
        public void DB_CreateNewEntry_Test()
        {
            //Arrange
            ReviewsController  controller         = new ReviewsController(db);
            ProductsController productsController = new ProductsController(db2);
            Product            testProduct        = new Product()
            {
                ProductId = 1, Name = "Linguine", Cost = 3.00, CountryOfOrigin = "Italy"
            };
            Review testReview = new Review()
            {
                Author = "Kaili", ContentBody = "We enjoyed this pasta. It cooked quickly and evenly.", Rating = 5, ProductId = 1
            };

            controller.Create(testReview);
            productsController.Create(testProduct);
            var collection = (controller.Index() as ViewResult).ViewData.Model as List <Review>;

            //Assert
            CollectionAssert.Contains(collection, testReview);
        }
Exemplo n.º 29
0
        public void Mock_PostViewResultCreate_ViewResult()
        {
            // Arrange
            Product testProduct = new Product
            {
                //ProductId = 1,
                Name        = "Gummies",
                Cost        = 20,
                Description = "Best Buy"
            };

            DbSetup();
            ProductsController controller = new ProductsController(db);

            // Act
            var redirectToActionResult = controller.Create(testProduct) as RedirectToActionResult;


            // Assert
            Assert.IsInstanceOfType(redirectToActionResult, typeof(RedirectToActionResult));
        }
Exemplo n.º 30
0
        private void CreateReview()
        {
            var productController = new ProductsController(dbp);
            var reviewController  = new ReviewsController(db);

            var testProduct = new Product()
            {
                Name            = "Kitfo",
                Cost            = 10,
                CountryOfOrigin = "Ethiopia",
                ProductImg      = null
            };

            productController.Create(testProduct, null);
            var productId  = dbp.Products.ToList()[0].ProductId;
            var testReview = new Review()
            {
                Author = "Mike", ContentBody = "Awesome", Rating = "4", ProductId = productId
            };

            reviewController.Create(testReview, null);
        }