コード例 #1
0
        public void POST_Create_should_save_the_record_and_redirect_to_index()
        {
            // Arrange
            Supplier selectedSupplier = new Supplier
            {
                 SupplierID = 99,
                 CompanyName = "Supplier 99"
            };
            Category selectedCategory = new Category
            {
                 CategoryID = 99,
                 CategoryName = "Category 99"
            };
            ProductsViewModel productViewModel = new ProductsViewModel
            {
                 Name = "Product Romeo",
                 UnitPrice = 20.00M,
                 UnitsInStock = 3,
                 UnitsOnOrder = 3,
                 SelectedCategoryValue = 99,
                 SelectedSupplierValue = 99
            };

            mock.Setup(m => m.Suppliers.GetById(It.IsAny<int>())).Returns(selectedSupplier);
            mock.Setup(m => m.Categories.GetById(It.IsAny<int>())).Returns(selectedCategory);
            mock.Setup(m => m.Suppliers.GetAll()).Returns(suppliers.AsQueryable<Supplier>());
            mock.Setup(m => m.Categories.GetAll()).Returns(categories.AsQueryable<Category>());

            mock.Setup(m => m.Products.Add(It.IsAny<Product>()));
            mock.Setup(m => m.SaveChanges());

            ProductController controller = new ProductController(mock.Object);

            // Act
            var result = controller.Create(productViewModel) as RedirectToRouteResult;
            var viewModel = controller.ViewData.Model as ProductsViewModel;

            // Assert
            // Check that each method was only called once.
            mock.Verify(x => x.Products.Add(It.IsAny<Product>()), Times.Once());
            mock.Verify(x => x.SaveChanges(), Times.Once());

            //check that redirec to index happened
            Assert.AreEqual("Index", result.RouteValues["action"]);
        }
コード例 #2
0
        public void GET_Create_should_display_create_view_with_suppliers_and_categories()
        {
            // Arrange
            mock.Setup(m => m.Suppliers.GetAll()).Returns(suppliers.AsQueryable<Supplier>());
            mock.Setup(m => m.Categories.GetAll()).Returns(categories.AsQueryable<Category>());
            ProductController controller = new ProductController(mock.Object);

            // Act
            ViewResult result = controller.Create() as ViewResult;
            var viewModel = controller.ViewData.Model as ProductsViewModel;

            // Assert
            Assert.IsTrue(viewModel.Suppliers.Count() == 2);
            Assert.IsTrue(viewModel.Categories.Count() == 2);
            Assert.AreEqual("", result.ViewName);
        }