public void Can_Get_CityAndCountryPorvider_CitySelectListItem() { MyMock mock = new MyMock(); SelectListItem[] result = CityAndCountryPorvider.GetCitySelectListItem(mock.ProductRepository.Object.Cities, 2); Assert.AreEqual(4, result.Length); Assert.AreEqual("City1", result[0].Text); Assert.AreEqual("1", result[0].Value); Assert.AreEqual("City3", result[2].Text); Assert.AreEqual("3", result[2].Value); Assert.IsTrue(result[1].Selected); }
public void Can_Get_Data() { MyMock myMock = new MyMock(); myMock.ProductRepository.Setup(m => m.Products).Returns(GetProductsData()); var controller = new WebApiController(myMock.ProductRepository.Object); ProductsListJsonViewModel result = controller.GetSpecifyProductIntro("ALL"); Assert.AreEqual(5, result.CategoryList.Count()); Assert.AreEqual("ALL", result.CategoryList.First()); Assert.AreEqual(10, result.Products.Count()); Assert.AreEqual(2, result.TotalPage); }
public void Can_Get_Initial_UserData_in_Edit_User() { var myMock = new MyMock(); var controller = new HomeController(myMock.ProductRepository.Object, myMock.UserManager.Object); UserInfoEditModel result = (controller.EditUser() as ViewResult).Model as UserInfoEditModel; Assert.AreEqual("testuser", result.Name); Assert.AreEqual("*****@*****.**", result.Email); Assert.AreEqual("0987654321", result.Phone); Assert.AreEqual(1, result.CityID); Assert.AreEqual(1, result.CountryID); Assert.AreEqual("111號", result.ShippingAddress); }
public void Check_BtnOnNavBar_With_Administrators_Logined() { var myMock = new MyMock(); myMock.UserManager.Setup(u => u.IsAuthenticated).Returns(true); myMock.UserManager.Setup(u => u.IsInRole(It.IsAny <string>(), "Administrators")).Returns(true); var controller = new AccountController(myMock.UserManager.Object); Dictionary <string, object> result = controller.BtnOnNavBar().Model as Dictionary <string, object>; Assert.AreEqual(2, result.Count); Assert.AreEqual(0, result["AccountLevel"]); Assert.AreEqual(myMock.AppUser.UserName, result["UserName"]); }
public void Can_Get_Data_With_KeyString() { MyMock myMock = new MyMock(); string key = "2"; myMock.ProductRepository.Setup(m => m.Products).Returns(GetProductsData()); var controller = new WebApiController(myMock.ProductRepository.Object); ProductsListJsonViewModel result = controller.GetSpecifyProductIntro("ALL", key); Assert.AreEqual(3, result.Products.Count()); Assert.AreEqual(1, result.TotalPage); Assert.AreEqual("smartphone2", result.Products.First().Name); }
public void Cannot_Add_Invalid_Product_To_Cart() { var myMock = new MyMock(); myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { new Product { ID = 1, Name = "P1", CategoryID = 1 }, }.AsQueryable()); Cart cart = new Cart(); CartController target = new CartController(myMock.ProductRepository.Object, null, null, null); target.AddToCart(cart, 2, 1); Assert.AreEqual(cart.Lines.Count(), 0); }
public void Cannot_View_Nonexistent_Product_Detail() { var myMock = new MyMock(); myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { new Product { ID = 1, Name = "P1" } }); HomeController controller = new HomeController(myMock.ProductRepository.Object, null); var result = controller.ProductDetail(2); Assert.AreEqual(400, ((HttpStatusCodeResult)result).StatusCode); }
public void Can_View_Product_Detail() { var myMock = new MyMock(); myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { new Product { ID = 1, Name = "P1" } }); HomeController target = new HomeController(myMock.ProductRepository.Object, null); Product p1 = (target.ProductDetail(1) as ViewResult).Model as Product; Assert.AreEqual(1, p1.ID); Assert.AreEqual("P1", p1.Name); }
public void Cannot_Get_Initial_Data_in_ProductEdit_When_Invalid_Id() { var myMock = new MyMock(); myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { new Product { ID = 1, Name = "P1" }, new Product { ID = 2, Name = "P2" } }); AdminController controller = new AdminController(myMock.ProductRepository.Object, myMock.UserManager.Object); ActionResult result = controller.ProductEdit(3); Assert.AreEqual(400, ((HttpStatusCodeResult)result).StatusCode); }
public void Cannot_Login_When_ModelState_Invalid() { var myMock = new MyMock(); LoginModel details = new LoginModel() { Name = myMock.AppUser.UserName, Password = myMock.AppUser.PasswordHash }; var controller = new AccountController(myMock.UserManager.Object); controller.ModelState.AddModelError("error", "error"); var result = controller.Login(details, "returnUrl") as Task <ActionResult>; var viewresult = result.Result as ViewResult; Assert.AreEqual("", viewresult.ViewName); Assert.AreEqual(details, viewresult.Model); Assert.AreEqual(false, viewresult.ViewData.ModelState.IsValid); }
public void Cannot_Login_When_User_Nonexistent() { var myMock = new MyMock(); myMock.UserManager.Setup(u => u.IsAuthenticated).Returns(false); myMock.UserManager.Setup(u => u.FindAsync(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(new AppUser()); LoginModel details = new LoginModel() { Name = myMock.AppUser.UserName, Password = myMock.AppUser.PasswordHash }; var controller = new AccountController(myMock.UserManager.Object); var result = controller.Login(details, "returnUrl") as Task <ActionResult>; var viewresult = result.Result as ViewResult; Assert.AreEqual("returnUrl", viewresult.ViewBag.returnUrl); Assert.AreEqual(false, viewresult.ViewData.ModelState.IsValid); }
public void Can_Remove_From_Cart() { var myMock = new MyMock(); Product product = new Product { ID = 1, Name = "P1" }; myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { product, }.AsQueryable()); Cart cart = new Cart(); cart.AddItem(product, 2); CartController target = new CartController(myMock.ProductRepository.Object, null, null, null); target.RemoveFromCart(cart, product.ID, "ThisIsReturnUrl"); Assert.AreEqual(cart.Lines.Count(), 0); }
public void Can_Get_Initial_Data_in_ProductEdit() { var myMock = new MyMock(); myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { new Product { ID = 1, Name = "P1" }, new Product { ID = 2, Name = "P2" } }); AdminController controller = new AdminController(myMock.ProductRepository.Object, myMock.UserManager.Object); Product result = (controller.ProductEdit(1) as ViewResult).Model as Product; Assert.AreEqual(1, result.ID); Assert.AreEqual("P1", result.Name); }
public void Remove_Product_From_Cart_Goes_ReturnUrl() { var myMock = new MyMock(); Product product = new Product { ID = 1, Name = "P1" }; myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { product, }.AsQueryable()); Cart cart = new Cart(); cart.AddItem(product, 2); CartController target = new CartController(myMock.ProductRepository.Object, null, null, null); RedirectToRouteResult result = target.RemoveFromCart(cart, product.ID, "ThisIsReturnUrl"); Assert.AreEqual(result.RouteValues["returnUrl"], "ThisIsReturnUrl"); }
public void Can_Login() { var myMock = new MyMock(); myMock.UserManager.Setup(u => u.IsAuthenticated).Returns(false); myMock.UserManager.Setup(u => u.FindAsync(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(myMock.AppUser); myMock.UserManager.Setup(u => u.CreateIdentityAsync(It.IsAny <AppUser>(), It.IsAny <string>())).ReturnsAsync(new ClaimsIdentity()); myMock.UserManager.Setup(u => u.AuthManager.SignOut()); LoginModel details = new LoginModel() { Name = myMock.AppUser.UserName, Password = myMock.AppUser.PasswordHash }; var controller = new AccountController(myMock.UserManager.Object); var result = controller.Login(details, "returnUrl") as Task <ActionResult>; var viewresult = result.Result as RedirectResult; Assert.AreEqual("returnUrl", viewresult.Url); }
public void Cannot_Checkout_Empty_Cart() { var myMock = new MyMock(); Product product1 = new Product { ID = 1, Name = "P1" }; Product product2 = new Product { ID = 1, Name = "P1" }; myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { product1, product2 }.AsQueryable()); Cart cart = new Cart(); CartController target = new CartController(myMock.ProductRepository.Object, null, null, myMock.UserManager.Object); var result = target.Checkout(cart) as RedirectToRouteResult; Assert.AreEqual("Index", result.RouteValues["action"]); }
public void Adding_Product_To_Cart_Then_Not_Redirect() { var myMock = new MyMock(); myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { new Product { ID = 1, Name = "P1", CategoryID = 1 }, new Product { ID = 2, Name = "P2", CategoryID = 1 } }.AsQueryable()); Cart cart = new Cart(); CartController target = new CartController(myMock.ProductRepository.Object, null, null, null); RedirectToRouteResult result = target.AddToCart(cart, 2, 1); Assert.AreEqual(result.RouteValues["action"], "ProductDetail"); Assert.AreEqual(result.RouteValues["productID"], 2); }
public void Cannot_Edit_Nonexistent_Product() { var myMock = new MyMock(); Product p = new Product { ID = 3, Name = "P3" }; myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { new Product { ID = 1, Name = "P1" }, new Product { ID = 2, Name = "P2" } }); AdminController controller = new AdminController(myMock.ProductRepository.Object, myMock.UserManager.Object); var result = controller.ProductEdit(p, null) as Task <ActionResult>; ActionResult viewresult = result.Result as ActionResult; Assert.AreEqual(((HttpStatusCodeResult)viewresult).StatusCode, 400); }
public void Can_Delete_Valid_Products() { var myMock = new MyMock(); Product prod = new Product { ID = 2, Name = "Test" }; myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { new Product { ID = 1, Name = "P1" }, prod, new Product { ID = 3, Name = "P3" }, }); AdminController controller = new AdminController(myMock.ProductRepository.Object, myMock.UserManager.Object); controller.ProductDelete(prod.ID); myMock.ProductRepository.Verify(m => m.DeleteProduct(prod.ID), Times.Once()); }
public void Cannot_Create_User_When_ModelState_Invalid() { var myMock = new MyMock(); CreateAccountModel userInfo = new CreateAccountModel { Name = "UserName", Email = "*****@*****.**", Password = "******", PasswordConfirm = "12sd45er78", Phone = "0123456789", CityID = 2, CountryID = 3, ShippingAddress = "999" }; var controller = new AdminController(myMock.ProductRepository.Object, myMock.UserManager.Object); controller.ViewData.ModelState.AddModelError("error", "error"); var result = controller.UserCreate(userInfo) as Task <ActionResult>; var viewresult = result.Result as ViewResult; Assert.AreEqual("~/Views/Home/CreateUser.cshtml", viewresult.ViewName); }
public void Cannot_Remove_Product_That_Not_In_Cart() { var myMock = new MyMock(); Product product1 = new Product { ID = 1, Name = "P1" }; Product product2 = new Product { ID = 1, Name = "P1" }; myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { product1, product2 }.AsQueryable()); Cart cart = new Cart(); cart.AddItem(product1, 2); CartController target = new CartController(myMock.ProductRepository.Object, null, null, null); target.RemoveFromCart(cart, 2, "ThisIsReturnUrl"); Assert.AreEqual(cart.Lines.Count(), 1); Assert.AreEqual(cart.Lines.First().Product.ID, 1); Assert.AreEqual(cart.Lines.First().Quantity, 2); }
public void Can_Edit_Product() { var myMock = new MyMock(); Product p = new Product { ID = 1, Name = "NewName" }; myMock.ProductRepository.Setup(m => m.Products).Returns(new Product[] { new Product { ID = 1, Name = "P1" }, new Product { ID = 2, Name = "P2" } }); myMock.ProductRepository.Setup(m => m.SaveProduct(It.IsAny <Product>())); AdminController controller = new AdminController(myMock.ProductRepository.Object, myMock.UserManager.Object); var result = controller.ProductEdit(p, null) as Task <ActionResult>; RedirectToRouteResult viewresult = result.Result as RedirectToRouteResult; myMock.ProductRepository.Verify(m => m.SaveProduct(p), Times.Once()); Assert.AreEqual("ProductIndex", viewresult.RouteValues["action"]); }
public void Can_Create_User() { var myMock = new MyMock(); //不確認CreateAsync功能 myMock.UserManager.Setup(u => u.CreateAsync(It.IsAny <AppUser>(), It.IsAny <string>())).ReturnsAsync(IdentityResult.Success); CreateAccountModel userInfo = new CreateAccountModel { Name = "UserName", Email = "*****@*****.**", Password = "******", PasswordConfirm = "12sd45er78", Phone = "0123456789", CityID = 2, CountryID = 3, ShippingAddress = "999" }; var controller = new AdminController(myMock.ProductRepository.Object, myMock.UserManager.Object); var result = controller.UserCreate(userInfo) as Task <ActionResult>; var viewresult = result.Result; Assert.AreEqual("UserIndex", (viewresult as RedirectToRouteResult).RouteValues["action"]); }
public void Can_View_Order_Index() { var myMock = new MyMock(); myMock.ProductRepository.Setup(m => m.ProductOrders).Returns(new ProductOrder[] { new ProductOrder { ID = 1, AppUserID = "1", Date = new DateTime(2020, 12, 12, 12, 12, 12), ProductList = "1:name,2,199", ReceiverName = "rec", ShippingAddress = "131號" }, new ProductOrder { ID = 2, AppUserID = "2", Date = new DateTime(2020, 12, 12, 12, 12, 12), ProductList = "10:Product,3,1199", ReceiverName = "another", ShippingAddress = "1號" } }); var controller = new HomeController(myMock.ProductRepository.Object, myMock.UserManager.Object); List <UserOrderViewModel> data = (controller.ViewOrder(1) as ViewResult).Model as List <UserOrderViewModel>; Assert.AreEqual(1, data.Count); Assert.AreEqual(new DateTime(2020, 12, 12, 12, 12, 12), data[0].Date); Assert.AreEqual("rec", data[0].ReceiverName); Assert.AreEqual("131號", data[0].ShippingAddress); Assert.AreEqual("1", data[0].ProductList[0][0]); Assert.AreEqual("name", data[0].ProductList[0][1]); Assert.AreEqual("2", data[0].ProductList[0][2]); Assert.AreEqual("199", data[0].ProductList[0][3]); }
public void Can_View_Order_Detail() { var myMock = new MyMock(); DateTime time = DateTime.Now; myMock.ProductRepository.Setup(u => u.ProductOrders).Returns(new ProductOrder[] { new ProductOrder { ID = 1, Date = time, ReceiverName = "Rec1", ShippingAddress = "address1", ProductList = "1:name1,2,1999" }, new ProductOrder { ID = 2, Date = time, ReceiverName = "Rec2", ShippingAddress = "address2", ProductList = "2:name2,1,3999&3:name3,1,9999" } }); var controller = new AdminController(myMock.ProductRepository.Object, myMock.UserManager.Object); UserOrderViewModel result = (controller.OrderDetail(2) as ViewResult).Model as UserOrderViewModel; Assert.AreEqual(time, result.Date); Assert.AreEqual("Rec2", result.ReceiverName); Assert.AreEqual("address2", result.ShippingAddress); Assert.AreEqual(2, result.ProductList.Count); Assert.AreEqual("2", result.ProductList[0][0]); Assert.AreEqual("name2", result.ProductList[0][1]); Assert.AreEqual("1", result.ProductList[0][2]); Assert.AreEqual("3999", result.ProductList[0][3]); Assert.AreEqual("3", result.ProductList[1][0]); }