public async void Index_EmptyCart_ReturnsMatchingModel() { Cart cart = new Cart { MemberId = UserId, Items = new List<CartItem>() }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Cart>> cartDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<Cart> { cart }.AsQueryable()); cartDbSetStub.Setup(db => db.FindAsync(cart.MemberId)).ReturnsAsync(cart); dbStub.Setup(db => db.Carts).Returns(cartDbSetStub.Object); Mock<ControllerContext> contextStub = new Mock<ControllerContext>(); contextStub.Setup(c => c.HttpContext.User.Identity).Returns<IIdentity>(null); contextStub.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(true); Mock<IGuidUserIdGetter> idGetterStub = new Mock<IGuidUserIdGetter>(); idGetterStub.Setup(id => id.GetUserId(It.IsAny<IIdentity>())).Returns(UserId); CartController controller = new CartController(dbStub.Object, idGetterStub.Object, new ShippingCostService()) { ControllerContext = contextStub.Object }; var result = await controller.Index() as ViewResult; Assert.That(result != null); Assert.That(result.Model, Is.InstanceOf<CartViewModel>()); var model = (CartViewModel)result.Model; Assert.That(model.Cart.Items.Count, Is.EqualTo(0)); }
public void AddCart_RetrieveUserBasedOnIdentity() { var email = "*****@*****.**"; var user = TestModelFactory.CreateUser(emailAddress: email); var users = new List<UserModel>(); users.Add(user); var mockedUserRepository = new Mock<IUserRepository>(); mockedUserRepository.Setup(m => m.FindByEmailAddress(email)).Returns(user); var deal = TestModelFactory.CreateCompleteDeal(); var dealOption = deal.Options.First(); var dealAttributes = dealOption.Attributes.Select(a => a.Key.ToString()).ToList(); var dealRepository = new FakeDealRepository(new List<DealModel>() { deal }); var repositoryFactory = new FakeUnitOfWorkFactory(userRepository: mockedUserRepository.Object, dealRepository: dealRepository); var cartService = new CartService(repositoryFactory); var controller = new CartController(cartService); controller.User = new GenericPrincipal(new GenericIdentity(email), new string[] { }); var newCartItem = CreateNewCartItem(deal.Key.ToString(), dealOption.Key.ToString(), dealAttributes); controller.Post(newCartItem); mockedUserRepository.Verify(m => m.FindByEmailAddress(email), Times.Once); }
// Use this for initialization void Start() { meshRenderer = GetComponent<MeshRenderer>(); boxCollider = GetComponent<BoxCollider>(); cameraController = FindObjectOfType<CameraController>(); cartController = FindObjectOfType<CartController>(); door = FindObjectOfType<Door>(); }
public void Adding_Product_To_Cart_Goes_To_Cart_Screen() { // Arrange - create the mock repository Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductID = 1, Name = "P1", Category = "Apples"}, }.AsQueryable()); // Arrange - create a Cart Cart cart = new Cart(); // Arrange - create the controller CartController target = new CartController(mock.Object, null); // Act - add a product to the cart RedirectToRouteResult result = target.AddToCart(cart, 2, "myUrl"); // Assert Assert.AreEqual(result.RouteValues["action"], "Index"); Assert.AreEqual(result.RouteValues["returnUrl"], "myUrl"); }
public void Cannot_Checkout_Empty_Cart() { // Arrange Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); Cart cart = new Cart(); ShippingDetails shippingDetails = new ShippingDetails(); CartController target = new CartController(null, mock.Object); // Act ViewResult result = target.Checkout(cart, shippingDetails); // Assert // Not passed to any processor mock.Verify(m => m.ProcessOrder(It.IsAny<Cart>(), It.IsAny<ShippingDetails>()), Times.Never()); // Returning default view Assert.AreEqual("", result.ViewName); // Passing invalid model to the view Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void Cannot_Checkout_Invalid_Shipping_Details() { // Arrange Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); Cart cart = new Cart(); cart.AddItem(new Product(), 1); CartController target = new CartController(null, mock.Object); target.ModelState.AddModelError("error", "error"); // Act ViewResult result = target.Checkout(cart, new ShippingDetails()); // Assert // Not passed to any processor mock.Verify(m => m.ProcessOrder(It.IsAny<Cart>(), It.IsAny<ShippingDetails>()), Times.Never()); // Returning default view Assert.AreEqual("", result.ViewName); // Passing invalid model Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void Cannot_Checkout_Empty_Cart() { // Arrange - create a mock order processor Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); // Arrange - create an empty cart Cart cart = new Cart(); // Arrange - create shipping details ShippingDetails shippingDetails = new ShippingDetails(); // Arrange - create an instance of the controller CartController target = new CartController(null, mock.Object); // Act ViewResult result = target.Checkout(cart, shippingDetails); // Assert - check that the order hasn't been passed on to the processor mock.Verify(m => m.ProcessOrder(It.IsAny<Cart>(), It.IsAny<ShippingDetails>()), Times.Never()); // Assert - check that the method is returning the default view Assert.AreEqual("", result.ViewName); // Assert - check that I am passing an invalid model to the view Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public async void AddToCart() { #region Arrange var options = new DbContextOptionsBuilder <AspnetAPIContext>() .UseInMemoryDatabase(databaseName: "AspnetAPI1") .Options; await using (var context = new AspnetAPIContext(options)) { context.Add(new Product() { Name = "Test", Price = 0 }); await context.SaveChangesAsync(); } Cart cartEntryCreated = null; #endregion #region Act await using (var context = new AspnetAPIContext(options)) { var controller = new CartController(context); await controller.AddToCart(1, 20); cartEntryCreated = await context.Cart.FindAsync(1); } #endregion #region Assert Assert.NotNull(cartEntryCreated); Assert.Equal(1, cartEntryCreated.ProductId); Assert.Equal(20, cartEntryCreated.Quantity); #endregion }
protected void AddToCart_Click(object sender, EventArgs e) { string productId = productid.Text; string quantity = qty.Text; if (productId.Length == 0 || quantity.Length == 0) { error.Text = "Product Id atau Quantity invalid"; } else { int productID = Int32.Parse(productId); int qtty = Int32.Parse(quantity); int userId = Int32.Parse(Session["userid"].ToString()); bool check = checkQty(productID, qtty); if (CartController.isProductExist(productID) == false) { error.Text = "Product Id salah"; } else if (CartController.isProductExist(productID) == true && CartController.checkstock(productID) == true) { error.Text = ""; } if (!check) { error.Text = "mohon cek kembali quantity"; } else { CartController.addToCart(userId, productID, qtty); error.Text = "Success add to cart"; } } }
public void Index() { // Arrange CartController controller = new CartController(); // Act //Accepted Value = 280 decimal expectedTotal = 100; List <CartModel> objCartList = new List <CartModel>() { new CartModel { CartId = 1, ProductId = 1, Quantity = 1, OriginalPrice = 50, OfferPrice = 50 }, new CartModel { CartId = 2, ProductId = 2, Quantity = 1, OriginalPrice = 30, OfferPrice = 30 }, new CartModel { CartId = 3, ProductId = 3, Quantity = 1, OriginalPrice = 20, OfferPrice = 20 }, // new CartModel{CartId = 4,ProductId= 4,Quantity =1,OriginalPrice =15,OfferPrice = 15} }; Offer checkOfferPrice = new Offer(objCartList); //var result = controller.Index() as ViewResult; List <CartModel> obj = checkOfferPrice.getOfferDiscount(); decimal TotalOfferPrice = 0; foreach (var item in obj) { TotalOfferPrice += item.OfferPrice; } // Assert Assert.AreEqual(TotalOfferPrice, expectedTotal); }
protected void btnAddToCart_Click(object sender, EventArgs e) { bool IsAvailableForPurchase = product.IsPurchaseableByUser; if (IsAvailableForPurchase) { int productId = product.Id.Value; int quantity = WA.Parser.ToInt(txtQuantity.Text).GetValueOrDefault(1); if ((product.InventoryIsEnabled == true && quantity < product.InventoryQtyInStock.Value) || product.InventoryIsEnabled == false) { string jsonProductFieldData = ""; List <JsonProductFieldData> productFieldsData = GetPostedWidgetValues(Request); if (productFieldsData.Count > 0) { jsonProductFieldData = Newtonsoft.Json.JsonConvert.SerializeObject(productFieldsData); } CartController cartController = new CartController(StoreContext); cartController.AddProductToCart(productId, quantity, jsonProductFieldData); //var checkoutOrderInfo = Session[StoreContext.SessionKeys.CheckoutOrderInfo] as CheckoutOrderInfo ?? new CheckoutOrderInfo() { Cart = cartController.GetCart(false) }; //checkoutOrderInfo.ReCalculateOrderTotals(); //Session[StoreContext.SessionKeys.CheckoutOrderInfo] = checkoutOrderInfo; Response.Redirect(StoreUrls.Cart(string.Format(@"""{0}"" has been added to your cart", product.Name))); } else { ShowFlash("This product is out of stock"); } } else { ShowFlash("This product is no longer available for purchase"); } }
public void Can_Add_To_Cart() { //preparing - create the repo Mock <IProductRepository> mock = new Mock <IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductID = 1, Name = "P1", Category = "Apples" }, }.AsQueryable()); //preparing - create the cart Cart cart = new Cart(); //preparing - create the controller CartController target = new CartController(mock.Object); //working - add product to the cart target.AddToCart(cart, 1, null); //asseration Assert.AreEqual(cart.Lines.Count(), 1); Assert.AreEqual(cart.Lines.ToArray()[0].Product.ProductID, 1); }
public async Task Delete_WhenCalled_WhenItemDoesNotExist_ReturnsNon204StatusCode() { var expectedId = Guid.NewGuid().ToString(); var expectedErrorMessages = "Item does not exist."; var expectedErrorStatusCode = ServiceErrorCode.ItemNotFound; var expected = new ServiceError(expectedErrorMessages, expectedErrorStatusCode); var serviceMock = new Mock <ICartService>(); serviceMock.Setup(mock => mock.RemoveItemFromCart(It.IsAny <string>())) .Returns(expected); var sut = new CartController(serviceMock.Object); var results = await sut.Delete(expectedId); Assert.IsType <ObjectResult>(results.Result); var result = results.Result as ObjectResult; Assert.Equal(expectedErrorMessages, result.Value); Assert.Equal(404, result.StatusCode); serviceMock.Verify(x => x.RemoveItemFromCart(It.Is <string>(item => item == expectedId)), Times.Once()); }
public void Adding_Product_To_Cart_Goes_To_Cart_Screen() { // 准备一个模仿存储库 Mock <IProductRepository> mock = new Mock <IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductID = 1, Name = "P1", Category = "Apples" }, }.AsQueryable()); // 准备-创建Cart Cart cart = new Cart(); // 准备-创建Cart控制器 CartController target = new CartController(mock.Object); // 动作--对Cart添加一个产品 RedirectToRouteResult result = target.AddToCart(cart, 2, "myUrl"); // 断言 Assert.AreEqual(result.RouteValues["action"], "Index"); Assert.AreEqual(result.RouteValues["returnUrl"], "myUrl"); }
public void Adding_Game_To_Cart_Goes_To_Cart_Screen() { // Імітоване сховище Mock <IGameRepository> mock = new Mock <IGameRepository>(); mock.Setup(m => m.Games).Returns(new List <Game> { new Game { GameId = 1, Name = "Игра1", Category = "Кат1" }, }.AsQueryable()); Cart cart = new Cart(); CartController controller = new CartController(mock.Object, null); RedirectToRouteResult result = controller.AddToCart(cart, 2, "myUrl"); // Ствердження Assert.AreEqual(result.RouteValues["action"], "Index"); Assert.AreEqual(result.RouteValues["returnUrl"], "myUrl"); }
public void TestCartRemoveProduct() { var expectedCart = FakeCart(); var product = expectedCart.Products[0]; expectedCart.Products.Clear(); // Arrange var mockBusinessLogic = new Mock <ISportStoreBusinessLogic>(); mockBusinessLogic .Setup(bl => bl.Cart.RemoveProduct(product.Product, product.Quantity)) .Returns(expectedCart); var controller = new CartController(mockBusinessLogic.Object); // Act //var result = controller.Delete(product); // Assert mockBusinessLogic.VerifyAll(); //Assert.IsInstanceOfType(result, typeof(OkResult)); }
public void Can_Add_To_Cart() { // Arrange - create the mock repository Mock <IProductRepository> mock = new Mock <IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductID = 1, Name = "P1", Category = Apples }, }.AsQueryable()); // Arrange - create a Cart Cart cart = new Cart(); // Arrange - create the controller CartController target = new CartController(mock.Object, null); // Act - add a product to the cart target.AddToCart(cart, 1, null); // Assert Assert.AreEqual(cart.Lines.Count(), 1); Assert.AreEqual(cart.Lines.ToArray()[0].Product.ProductID, 1); }
public void Cannot_Checkout_Invalid_ShippingDetails() { // przygotowanie — tworzenie imitacji procesora zamówień Mock <IOrderProcessor> mock = new Mock <IOrderProcessor>(); // przygotowanie — tworzenie koszyka z produktem Cart cart = new Cart(); cart.AddItem(new Product(), 1); // przygotowanie — tworzenie egzemplarza kontrolera CartController target = new CartController(null, mock.Object); // przygotowanie — dodanie błędu do modelu target.ModelState.AddModelError("error", "error"); // działanie — próba zakończenia zamówienia ViewResult result = target.Checkout(cart, new ShippingDetails()); // asercje — sprawdzenie, czy zamówienie nie zostało przekazane do procesora mock.Verify(m => m.ProcessOrder(It.IsAny <Cart>(), It.IsAny <ShippingDetails>()), Times.Never()); // asercje — sprawdzenie, czy metoda zwraca domyślny widok Assert.AreEqual("", result.ViewName); // asercje — sprawdzenie, czy przekazujemy nieprawidłowy model do widoku Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void Can_Checkout_And_Submit_Order() { // Arrange - create a mock order processor Mock <IOrderProcessor> mock = new Mock <IOrderProcessor>(); // Arrange - create an empty cart Cart cart = new Cart(); cart.AddItem(new Product(), 1); // Arrange - create shipping details ShippingDetails shippingDetails = new ShippingDetails(); // Arrange - create an instance of the controller CartController target = new CartController(null, mock.Object); // Act - try to checkout ViewResult result = target.Checkout(cart, new ShippingDetails()); // Assert - check that the order hasn't been passed on to the processor mock.Verify(m => m.ProcessOrder(It.IsAny <Cart>(), It.IsAny <ShippingDetails>()), Times.Once); // Assert - check that the method is returning the default view Assert.AreEqual("Completed", result.ViewName); // Assert - check that I am passing an invalid model to the view Assert.AreEqual(true, result.ViewData.ModelState.IsValid); }
public void TestCartGetForCurrentSession() { var expectedCart = FakeCart(); // Arrange var mockBusinessLogic = new Mock <ISportStoreBusinessLogic>(); mockBusinessLogic .Setup(bl => bl.Cart.GetForCurrentSession()) .Returns(expectedCart); var controller = new CartController(mockBusinessLogic.Object); // Act var result = controller.Get(); var obtainedCart = (result as OkNegotiatedContentResult <Cart>).Content; // Assert mockBusinessLogic.VerifyAll(); Assert.IsNotNull(obtainedCart); Assert.AreEqual(1, obtainedCart.Products.Count); Assert.AreEqual(10.9f * 2, obtainedCart.Total); }
public void Adding_Game_To_Cart_Goes_To_Cart_Screen() { // Организация - создание имитированного хранилища Mock <IGameRepository> mock = new Mock <IGameRepository>(); mock.Setup(m => m.Games).Returns(new List <Game> { new Game { GameId = 1, Name = "Игра1", Category = "Кат1" }, }.AsQueryable()); // Организация - создание корзины Cart cart = new Cart(); // Организация - создание контроллера CartController controller = new CartController(mock.Object); // Действие - добавить игру в корзину RedirectToRouteResult result = controller.AddToCart(cart, 2, "myUrl"); // Утверждение Assert.AreEqual(result.RouteValues["action"], "Index"); Assert.AreEqual(result.RouteValues["returnUrl"], "myUrl"); }
public void Cannot_Checkout_Invalid_ShippingDetails() { // Arrange - create a mock order processor Mock <IOrderProcessor> mock = new Mock <IOrderProcessor>(); // Arrange - create a cart with an item Cart cart = new Cart(); cart.AddItem(new Product(), 1); // Arrange - create an instance of the controller CartController target = new CartController(null, mock.Object); // Arrange - add an error to the model target.ModelState.AddModelError("error", "error"); // Act - try to checkout ViewResult result = target.Checkout(cart, new ShippingDetails()); // Assert - check that the order hasn't been passed on to the processor mock.Verify(m => m.ProcessOrder(It.IsAny <Cart>(), It.IsAny <ShippingDetails>()), Times.Never()); // Assert - check that the method is returning the default view Assert.AreEqual("", result.ViewName); // Assert - check that we are passing an invalid model to the view Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void Adding_Product_To_Cart_Goes_To_Cart_Screen() { // przygotowanie - tworzenie imitacji repozytorium Mock <IProductRepository> mock = new Mock <IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductID = 1, Name = "P1", Category = "Jabłka" }, }.AsQueryable()); // przygotowanie - tworzenie koszyka Cart cart = new Cart(); // przygotowanie - utworzenie kontrolera CartController target = new CartController(mock.Object, null); // działanie - dodanie produktu do koszyka RedirectToRouteResult result = target.AddToCart(cart, 2, "myUrl"); // asercje Assert.AreEqual(result.RouteValues["action"], "Index"); Assert.AreEqual(result.RouteValues["returnUrl"], "myUrl"); }
public void Valid_Order_Goes_To_Submitter_And_Displays_Completed_View() { // Arrange var mockSubmitter = new Moq.Mock <IOrderSubmitter>(); CartController controller = new CartController(null, mockSubmitter.Object); Cart cart = new Cart(); cart.AddItem(new Product(), 1); var formData = new FormCollection { { "Name", "Steve" }, { "Line1", "123 My Street" }, { "Line2", "MyArea" }, { "Line3", "" }, { "City", "MyCity" }, { "State", "Some State" }, { "Zip", "123ABCDEF" }, { "Country", "Far far away" }, { "GiftWrap", bool.TrueString } }; // Act var result = controller.CheckOut(cart, formData); // Assert Assert.AreEqual("Completed", result.ViewName); mockSubmitter.Verify(x => x.SubmitOrder(cart)); Assert.AreEqual(0, cart.Lines.Count); }
public void Can_Add_To_Cart() { // Створення імітованого сховища Mock <IGameRepository> mock = new Mock <IGameRepository>(); mock.Setup(m => m.Games).Returns(new List <Game> { new Game { GameId = 1, Name = "Game1", Category = "Cat1" }, }.AsQueryable()); Cart cart = new Cart(); CartController controller = new CartController(mock.Object, null); // Добавлення гри в корзину controller.AddToCart(cart, 1, null); // Ствердження Assert.AreEqual(cart.Lines.Count(), 1); Assert.AreEqual(cart.Lines.ToList()[0].Game.GameId, 1); }
public void Cannot_Checkout_Invalid_ShippingDetails() { //Arrange Mock <IOrderProcessor> mock = new Mock <IOrderProcessor>(); Cart cart = new Cart(); cart.AddItem(new Phone(), 1); CartController controller = new CartController(null, mock.Object); controller.ModelState.AddModelError("error", "error"); //Act ViewResult result = controller.Checkout(cart, new ShippingDetails()); //Assert mock.Verify(m => m.ProcessOrder(It.IsAny <Cart>(), It.IsAny <ShippingDetails>()), Times.Never()); Assert.AreEqual("", result.ViewName); Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void Can_Add_To_Cart() { // Организация - создание имитированного хранилища Mock <IGameRepository> mock = new Mock <IGameRepository>(); mock.Setup(m => m.Games).Returns(new List <Game> { new Game { GameId = 1, Name = "Игра1", Category = "Кат1" }, }.AsQueryable()); // Организация - создание корзины Cart cart = new Cart(); // Организация - создание контроллера CartController controller = new CartController(mock.Object); // Действие - добавить игру в корзину controller.AddToCart(cart, 1, null); // Утверждение Assert.AreEqual(cart.Lines.Count(), 1); Assert.AreEqual(cart.Lines.ToList()[0].Game.GameId, 1); }
public void ShouldAddAnItemToANewCart() { // Arrange var targetShoppingCartSaved = false; var cartRepository = new StubIShoppingCartRepository { SaveShoppingCartShoppingCart = (cart) => { targetShoppingCartSaved = true; return(cart); } }; var productRepository = new StubIProductRepository { ProductExistsInt32 = productId => productId.Equals(1) }; var controller = new CartController(cartRepository, productRepository); SetupControllerForTests(controller); // Act var result = controller.Add(new CartItem { ProductId = 1, ProductName = "Test Product", ProductPrice = 9.99m, Quantity = 1 }); // Assert Assert.IsTrue(targetShoppingCartSaved); Assert.AreEqual(result.StatusCode, HttpStatusCode.Created); }
public void AddToCart_AddsProduct() { Cart cart = new Cart(); Mock <IProductRepository> repo = new Mock <IProductRepository>(); repo.Setup(x => x.Products).Returns(new [] { new Product { ProductId = 1, Category = "Soccer", Price = 20 } }); //Act CartController c = new CartController(repo.Object, null); c.AddToCart(cart, 1, "test"); //Assert Assert.AreEqual(cart.Lines.Count(), 1); Assert.AreEqual(cart.Lines.ToArray()[0].Product.ProductId, 1); }
public void Cannot_Checkout_Invalid_ShippingDetails() { //Arrange Cart cart = new Cart(); cart.AddItem(new Product(), 1); Mock <IOrderProcessor> mock = new Mock <IOrderProcessor>(); CartController target = new CartController(null, mock.Object); target.ModelState.AddModelError("error", "error"); //Act ViewResult result = target.Checkout(cart, new ShippingDetails()); //Assert - check that order hasn't been passed to the processor mock.Verify(m => m.ProcessOrder(It.IsAny <Cart>(), It.IsAny <ShippingDetails>()), Times.Never()); //checkout is returning the default view System.Diagnostics.Debug.WriteLine("skdjflakjsdf" + result.ViewName); Assert.AreEqual("", result.ViewName); // check passign invalid value to view Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void Setup() { cartServiceMock = new Mock <ICartService>(); paymentServiceMock = new Mock <IPaymentService>(); shipmentServiceMock = new Mock <IShipmentService>(); // arrange cardMock = new Mock <ICard>(); addressInfoMock = new Mock <IAddressInfo>(); // var cartItemMock = new Mock <CartItem>(); cartItemMock.Setup(item => item.Price).Returns(10); items = new List <CartItem>() { cartItemMock.Object }; cartServiceMock.Setup(c => c.Items()).Returns(items.AsEnumerable()); controller = new CartController(cartServiceMock.Object, paymentServiceMock.Object, shipmentServiceMock.Object); }
public void Can_Add_TO_Cart() { // 准备一个模仿存储库 Mock <IProductRepository> mock = new Mock <IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductID = 1, Name = "P1", Category = "Apples" }, }.AsQueryable()); // 准备-创建Cart Cart cart = new Cart(); // 准备-创建Cart控制器 CartController target = new CartController(mock.Object); // 动作--对Cart添加一个产品 target.AddToCart(cart, 1, null); // 断言 Assert.AreEqual(cart.Lines.Count(), 1); Assert.AreEqual(cart.Lines.ToArray()[0].Product.ProductID, 1); }
public void Index() { List <CartItemDto> cartitems = new List <CartItemDto>() { new CartItemDto { Id = 0, ProductName = "washing machine", ProductId = 3, Count = 1, Price = 10500000, Images = "", TotalPriceItem = 10500000 } }; ResultDto <CartDto> data = new ResultDto <CartDto>() { Data = new CartDto { CartId = 0, CartItems = cartitems, TotalPrice = 10500000 }, IsSuccess = true }; var moq = new Mock <ICartService>(); moq.Setup(p => p.GetMyCart(Guid.Parse("0cd905ad-e101-4e4a-9401-3aaf4d81a4c4"), "700d83aa-6789-44b0-be82-4f660ec29cd3")).Returns(data); CartController cartController = new CartController(moq.Object); ViewResult result = cartController.Index() as ViewResult; Assert.Equal(data.Data, result.Model); }
public void Cannot_Checkout_Invalid_ShippingDetails() { // Sắp xếp – tạo một bộ xử lý đơn hàng giả Mock <IOrderProcessor> mock = new Mock <IOrderProcessor>(); // Chuẩn bị – tạo một giỏ hàng với một món hàng Cart cart = new Cart(); cart.AddItem(new Product(), 1); // Chuẩn bị - tạo một controller CartController target = new CartController(null, mock.Object); // Chuẩn bị - thêm một lỗi vào mô hình target.ModelState.AddModelError("error", "error"); // Thực hiện – thử thanh toán ViewResult result = target.Checkout(cart, new ShippingDetails()); // Xác nhận – kiểm tra xem đơn hàng không được chuyển sang bộ xử lý mock.Verify(m => m.ProcessOrder(It.IsAny <Cart>(), It.IsAny <ShippingDetails>()), Times.Never()); // Xác nhận – kiểm tra xem phương thức trả về trang mặc định Assert.AreEqual("", result.ViewName); // Xác nhận – kiểm tra xem tôi chuyển mô hình không hợp lệ sang giao diện hiển Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void Can_Add_To_Cart() { // przygotowanie - tworzenie imitacji repozytorium Mock <IProductRepository> mock = new Mock <IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductID = 1, Name = "P1", Category = "Jabłka" }, }.AsQueryable()); // przygotowanie - tworzenie koszyka Cart cart = new Cart(); // przygotowanie - utworzenie kontrolera CartController target = new CartController(mock.Object, null); // działanie - dodanie produktu do koszyka target.AddToCart(cart, 1, null); // asercje Assert.AreEqual(cart.Lines.Count(), 1); Assert.AreEqual(cart.Lines.ToArray()[0].Product.ProductID, 1); }
public void Cannot_Checkout_Empty_Cart() { // arrange // create a mock repository Mock <IOrderProcessor> mock = new Mock <IOrderProcessor>(); // create an empty cart Cart cart = new Cart(); // create shipping details ShippingDetails shippingDetails = new ShippingDetails(); // create an instance of the controller CartController target = new CartController(null, mock.Object); // act ViewResult result = target.Checkout(cart, shippingDetails); // assert // check that the order hasn't been passed on to the processor mock.Verify(m => m.ProcessOrder(It.IsAny <Cart>(), It.IsAny <ShippingDetails>()), Times.Never()); // check that the method is returning the default view Assert.AreEqual("", result.ViewName); // check that I am passing an invalid model to the view Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void Adding_Product_To_Cart_Goes_To_Cart_Screen() { // Arrange - create the mock repository Mock <IProductRepository> mock = new Mock <IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductID = 1, Name = "P1", Category = Apples }, }.AsQueryable()); // Arrange - create a Cart Cart cart = new Cart(); // Arrange - create the controller CartController target = new CartController(mock.Object, null); // Act - add a product to the cart RedirectToRouteResult result = target.AddToCart(cart, 2, "myUrl"); // Assert //Assert.AreEqual(result.RouteValues["action"], "Index"); //Assert.AreEqual(result.RouteValues["returnUrl"], "myUrl"); }
public void Cannot_Checkout_Invalid_ShippingDetails() { // Arrange - create a mock order processor Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); // Arrange - create a cart with an item Cart cart = new Cart(); cart.AddItem(new Product(), 1); // Arrange - create an instance of the controller CartController target = new CartController(null, mock.Object); // Arrange - add an error to the model target.ModelState.AddModelError("error", "error"); // Act - try to checkout ViewResult result = target.Checkout(cart, new ShippingDetails()); // Assert - check that the order hasn't been passed on to the processor mock.Verify(m => m.ProcessOrder(It.IsAny<Cart>(), It.IsAny<ShippingDetails>()), Times.Never()); // Assert - check that the method is returning the default view Assert.AreEqual("", result.ViewName); // Assert - check that I am passing an invalid model to the view Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void AddCart_UserCartAdded() { var email = "*****@*****.**"; var user = TestModelFactory.CreateUser(emailAddress: email); var users = new List<UserModel>(); users.Add(user); var mockedUserRepository = new Mock<IUserRepository>(); mockedUserRepository.Setup(m => m.FindByEmailAddress(email)).Returns(user); var deal = TestModelFactory.CreateCompleteDeal(); var dealOption = deal.Options.First(); var dealAttributes = dealOption.Attributes.Select(a => a.Key.ToString()).ToList(); var dealRepository = new FakeDealRepository(new List<DealModel>() { deal }); var repositoryFactory = new FakeUnitOfWorkFactory(userRepository: mockedUserRepository.Object, dealRepository: dealRepository); var cartService = new CartService(repositoryFactory); var controller = new CartController(cartService); controller.User = new GenericPrincipal(new GenericIdentity(email), new string[] { }); var newCartItem = CreateNewCartItem(deal.Key.ToString(), dealOption.Key.ToString(), dealAttributes); user.CartItems.Should().BeEmpty(); controller.Post(newCartItem); user.CartItems.Count().ShouldBeEquivalentTo(1); var firstCartItem = user.CartItems.First(); firstCartItem.DealOption.ShouldBeEquivalentTo(dealOption); firstCartItem.AttributeValues.ShouldAllBeEquivalentTo(dealOption.Attributes); }
public void SetSessionCartQty_WhenCalled_SetsSessionCartQuantityToCartCount() { Cart cart = new Cart { MemberId = UserId, Items = new List<CartItem> { new CartItem(), new CartItem(), new CartItem() } }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Cart>> cartDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<Cart> { cart }.AsQueryable()); dbStub. Setup(db => db.Carts). Returns(cartDbSetStub.Object); Mock<ControllerContext> contextMock = new Mock<ControllerContext>(); contextMock. Setup(c => c.HttpContext.User.Identity). Returns<IIdentity>(null); contextMock. SetupGet(c => c.HttpContext.Session[CartController.CART_QTY_SESSION_KEY]). Returns(null); contextMock. SetupSet(c => c.HttpContext.Session[CartController.CART_QTY_SESSION_KEY] = It.IsAny<object>()). Verifiable(); Mock<IGuidUserIdGetter> idGetterStub = new Mock<IGuidUserIdGetter>(); idGetterStub. Setup(id => id.GetUserId(It.IsAny<IIdentity>())). Returns(UserId); CartController controller = new CartController(dbStub.Object, idGetterStub.Object, shippingCostService: null) { ControllerContext = contextMock.Object }; controller.SetSessionCartQty(); Assert.That( () => contextMock.VerifySet(c => c.HttpContext.Session[CartController.CART_QTY_SESSION_KEY] = cart.Items.Count, Times.Once), Throws.Nothing); }
public void GetCarts_RetrieveUserByIdentity() { var email = "*****@*****.**"; var user = TestModelFactory.CreateUser(emailAddress: email); var users = new List<UserModel>(); users.Add(user); var mockedUserRepository = new Mock<IUserRepository>(); mockedUserRepository.Setup(m => m.FindByEmailAddress(email)).Returns(user); var repositoryFactory = new FakeUnitOfWorkFactory(userRepository: mockedUserRepository.Object); var cartService = new CartService(repositoryFactory); var controller = new CartController(cartService); controller.User = new GenericPrincipal(new GenericIdentity(email), new string[] { }); controller.Get(); mockedUserRepository.Verify(m => m.FindByEmailAddress(email), Times.Once); }
public void Can_Add_To_Cart() { // Arrange - create the mock repository Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductID = 1, Name = "P1", Category = "Apples"}, }.AsQueryable()); // Arrange - create a Cart Cart cart = new Cart(); // Arrange - create the controller CartController target = new CartController(mock.Object, null); // Act - add a product to the cart target.AddToCart(cart, 1, null); // Assert Assert.AreEqual(cart.Lines.Count(), 1); Assert.AreEqual(cart.Lines.ToArray()[0].Product.ProductID, 1); }
void Start() { playerController = FindObjectOfType<PlayerController>(); cartController = FindObjectOfType<CartController>(); canvas.gameObject.SetActive(false); }
public void UpdateQuantity_ItemIsNotInCart_Throws404Exception() { Guid gameProductId = new Guid("976ACE77-D87C-4EBE-83A0-46F911F6490E"); PhysicalGameProduct gameProduct = new PhysicalGameProduct() { Id = Id, BoxArtImageURL = "boxart", NewWebPrice = 12m, UsedWebPrice = 8m, Platform = new Platform { PlatformName = "XBAX", } }; Cart cart = new Cart { MemberId = UserId, Items = new List<CartItem> { new CartItem { Product = gameProduct, ProductId = gameProduct.Id, IsNew = true, MemberId = UserId, Quantity = 1 } } }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Cart>> cartDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<Cart> { cart }.AsQueryable()); cartDbSetStub.Setup(db => db.FindAsync(cart.MemberId)).ReturnsAsync(cart); dbStub.Setup(db => db.Carts).Returns(cartDbSetStub.Object); Mock<ControllerContext> contextStub = new Mock<ControllerContext>(); contextStub.Setup(c => c.HttpContext.User.Identity).Returns<IIdentity>(null); contextStub.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(true); Mock<IGuidUserIdGetter> idGetterStub = new Mock<IGuidUserIdGetter>(); idGetterStub.Setup(id => id.GetUserId(It.IsAny<IIdentity>())).Returns(UserId); CartController controller = new CartController(dbStub.Object, idGetterStub.Object, shippingCostService: null) { ControllerContext = contextStub.Object }; Assert.That(async () => await controller.UpdateQuantity(gameProductId, true, 2), Throws.InstanceOf<HttpException>().And.Matches<HttpException>(ex => ex.GetHttpCode() == 404)); }
public async void UpdateQuantity_InvalidQuantity_RedirectsToIndex(int? quantity) { CartController controller = new CartController(veilDataAccess: null, idGetter: null, shippingCostService: null); var result = await controller.UpdateQuantity(Id, true, quantity) as RedirectToRouteResult; Assert.That(result != null); Assert.That(result.RouteValues["action"], Is.EqualTo("Index")); }
public void RemoveItem_NullCart() { Cart cart = new Cart { MemberId = new Guid("45B0752E-998B-477A-AAAD-3ED535BA3559"), Items = new List<CartItem>(), }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Cart>> cartDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<Cart> { cart }.AsQueryable()); cartDbSetStub.Setup(db => db.FindAsync(cart.MemberId)).ReturnsAsync(cart); dbStub.Setup(db => db.Carts).Returns(cartDbSetStub.Object); Mock<ControllerContext> contextStub = new Mock<ControllerContext>(); contextStub.Setup(c => c.HttpContext.User.Identity).Returns<IIdentity>(null); contextStub.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(true); Mock<IGuidUserIdGetter> idGetterStub = new Mock<IGuidUserIdGetter>(); idGetterStub.Setup(id => id.GetUserId(It.IsAny<IIdentity>())).Returns(UserId); CartController controller = new CartController(dbStub.Object, idGetterStub.Object, shippingCostService: null) { ControllerContext = contextStub.Object }; Assert.That(async () => await controller.RemoveItem(Id, true), Throws.InstanceOf<HttpException>().And.Matches<HttpException>(ex => ex.GetHttpCode() == 404)); }
public async void RemoveItem_CatchesOnSave() { Game game = new Game() { Id = GameId, Name = "game" }; GameProduct gameProduct = new PhysicalGameProduct() { Id = Id, BoxArtImageURL = "boxart", NewWebPrice = 79.99m, UsedWebPrice = 44.99m, Platform = new Platform { PlatformName = "PS4", }, Game = game }; CartItem cartItem = new CartItem() { ProductId = gameProduct.Id }; Cart cart = new Cart { MemberId = UserId, Items = new List<CartItem>() { cartItem } }; Member member = new Member() { UserId = UserId, Cart = cart }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Cart>> cartDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<Cart> { cart }.AsQueryable()); Mock<DbSet<Member>> memberDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<Member> { member }.AsQueryable()); Mock<DbSet<GameProduct>> gameProductDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<GameProduct> { gameProduct }.AsQueryable()); cartDbSetStub.Setup(db => db.FindAsync(cart.MemberId)).ReturnsAsync(cart); gameProductDbSetStub.Setup(db => db.FindAsync(gameProduct.Id)).ReturnsAsync(gameProduct); memberDbSetStub.Setup(db => db.Find(member.UserId)).Returns(member); gameProductDbSetStub.SetupForInclude(); dbStub.Setup(db => db.Carts).Returns(cartDbSetStub.Object); dbStub.Setup(db => db.GameProducts).Returns(gameProductDbSetStub.Object); dbStub.Setup(db => db.Members).Returns(memberDbSetStub.Object); dbStub.Setup(db => db.SaveChangesAsync()).Throws<DbUpdateException>(); Mock<ControllerContext> contextStub = new Mock<ControllerContext>(); contextStub.Setup(c => c.HttpContext.User.Identity).Returns<IIdentity>(null); contextStub.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(true); Mock<HttpSessionStateBase> sessionStub = new Mock<HttpSessionStateBase>(); contextStub.Setup(s => s.HttpContext.Session).Returns(sessionStub.Object); Mock<IGuidUserIdGetter> idGetterStub = new Mock<IGuidUserIdGetter>(); idGetterStub.Setup(id => id.GetUserId(It.IsAny<IIdentity>())).Returns(UserId); CartController controller = new CartController(dbStub.Object, idGetterStub.Object, shippingCostService: null) { ControllerContext = contextStub.Object }; var result = await controller.RemoveItem(gameProduct.Id, cartItem.IsNew) as RedirectToRouteResult; Assert.That(result != null); Assert.That(result.RouteValues["action"], Is.EqualTo("Index")); }
public async void Index_ItemsInCart_ReturnsMatchingModel() { PhysicalGameProduct gameProduct = new PhysicalGameProduct() { Id = Id, BoxArtImageURL = "boxart", NewWebPrice = 12m, UsedWebPrice = 8m, Platform = new Platform { PlatformName = "XBAX", } }; Cart cart = new Cart { MemberId = UserId, Items = new List<CartItem> { new CartItem { Product = gameProduct, ProductId = gameProduct.Id, IsNew = true, MemberId = UserId, Quantity = 1 }, new CartItem { Product = gameProduct, ProductId = gameProduct.Id, IsNew = false, MemberId = UserId, Quantity = 2 } } }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Cart>> cartDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<Cart> { cart }.AsQueryable()); cartDbSetStub.Setup(db => db.FindAsync(cart.MemberId)).ReturnsAsync(cart); dbStub.Setup(db => db.Carts).Returns(cartDbSetStub.Object); Mock<ControllerContext> contextStub = new Mock<ControllerContext>(); contextStub.Setup(c => c.HttpContext.User.Identity).Returns<IIdentity>(null); contextStub.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(true); Mock<IGuidUserIdGetter> idGetterStub = new Mock<IGuidUserIdGetter>(); idGetterStub.Setup(id => id.GetUserId(It.IsAny<IIdentity>())).Returns(UserId); CartController controller = new CartController(dbStub.Object, idGetterStub.Object, new ShippingCostService()) { ControllerContext = contextStub.Object }; var result = await controller.Index() as ViewResult; Assert.That(result != null); Assert.That(result.Model, Is.InstanceOf<CartViewModel>()); var model = (CartViewModel)result.Model; Assert.That(model.Cart.Items.Count, Is.EqualTo(2)); Assert.That(model.Cart.Items.FirstOrDefault(i => i.IsNew).ProductId, Is.EqualTo(Id)); Assert.That(model.Cart.Items.FirstOrDefault(i => !i.IsNew).ProductId, Is.EqualTo(Id)); Assert.That(model.Cart.Items.FirstOrDefault(i => i.IsNew).Quantity, Is.EqualTo(1)); Assert.That(model.Cart.Items.FirstOrDefault(i => !i.IsNew).Quantity, Is.EqualTo(2)); }
public void RemoveItem_NullId() { CartController controller = new CartController(veilDataAccess: null, idGetter: null, shippingCostService: null); Assert.That(async () => await controller.RemoveItem(null, true), Throws.InstanceOf<HttpException>().And.Matches<HttpException>(ex => ex.GetHttpCode() == 404)); }
public void Can_View_Cart_Contents() { // Arrange Cart cart = new Cart(); CartController target = new CartController(null, null); // Act CartIndexViewModel result = (CartIndexViewModel)target.Index(cart, "myUrl").ViewData.Model; // Assert Assert.AreSame(result.Cart, cart); Assert.AreEqual(result.ReturnUrl, "myUrl"); }
public void AddItem_NullCart() { Game game = new Game() { Id = GameId, Name = "game" }; GameProduct gameProduct = new PhysicalGameProduct() { Id = Id, BoxArtImageURL = "boxart", NewWebPrice = 79.99m, UsedWebPrice = 44.99m, Platform = new Platform { PlatformName = "PS4", }, Game = game }; Cart cart = new Cart { MemberId = new Guid("45B0752E-998B-477A-AAAD-3ED535BA3559"), Items = new List<CartItem>(), }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Cart>> cartDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<Cart> { cart }.AsQueryable()); Mock<DbSet<GameProduct>> gameProductDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<GameProduct> { gameProduct }.AsQueryable()); cartDbSetStub.Setup(db => db.FindAsync(cart.MemberId)).ReturnsAsync(cart); gameProductDbSetStub.Setup(db => db.FindAsync(gameProduct.Id)).ReturnsAsync(gameProduct); gameProductDbSetStub.SetupForInclude(); dbStub.Setup(db => db.Carts).Returns(cartDbSetStub.Object); dbStub.Setup(db => db.GameProducts).Returns(gameProductDbSetStub.Object); Mock<ControllerContext> contextStub = new Mock<ControllerContext>(); contextStub.Setup(c => c.HttpContext.User.Identity).Returns<IIdentity>(null); contextStub.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(true); Mock<IGuidUserIdGetter> idGetterStub = new Mock<IGuidUserIdGetter>(); idGetterStub.Setup(id => id.GetUserId(It.IsAny<IIdentity>())).Returns(UserId); CartController controller = new CartController(dbStub.Object, idGetterStub.Object, shippingCostService: null) { ControllerContext = contextStub.Object }; Assert.That(async () => await controller.AddItem(gameProduct.Id, true), Throws.InstanceOf<HttpException>().And.Matches<HttpException>(ex => ex.GetHttpCode() == 404)); }
private static CartController CreateCartController(List<UserModel> users, List<DealModel> deals = null) { var userRepository = new FakeUserRepository(users); var repositoryFactory = new FakeUnitOfWorkFactory( userRepository: userRepository, dealRepository: deals != null ? new FakeDealRepository(deals) : null); var cartService = new CartService(repositoryFactory); var controller = new CartController(cartService); return controller; }
public async void UpdateQuantity_ItemIsInCart_NotEnoughNewInventory_ReturnsUpdatedModel() { PhysicalGameProduct gameProduct = new PhysicalGameProduct() { Id = Id, BoxArtImageURL = "boxart", SKUNameSuffix = "GameProductName", Game = new Game { Name = "GameName" }, NewWebPrice = 12m, UsedWebPrice = 8m, Platform = new Platform { PlatformName = "XBAX", }, LocationInventories = new List<ProductLocationInventory> { new ProductLocationInventory { NewOnHand = 5, UsedOnHand = 2 } } }; Cart cart = new Cart { MemberId = UserId, Items = new List<CartItem> { new CartItem { Product = gameProduct, ProductId = gameProduct.Id, IsNew = true, MemberId = UserId, Quantity = 1 } } }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Cart>> cartDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<Cart> { cart }.AsQueryable()); cartDbSetStub.Setup(db => db.FindAsync(cart.MemberId)).ReturnsAsync(cart); dbStub.Setup(db => db.Carts).Returns(cartDbSetStub.Object); Mock<ControllerContext> contextStub = new Mock<ControllerContext>(); contextStub.Setup(c => c.HttpContext.User.Identity).Returns<IIdentity>(null); contextStub.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(true); Mock<IGuidUserIdGetter> idGetterStub = new Mock<IGuidUserIdGetter>(); idGetterStub.Setup(id => id.GetUserId(It.IsAny<IIdentity>())).Returns(UserId); CartController controller = new CartController(dbStub.Object, idGetterStub.Object, new ShippingCostService()) { ControllerContext = contextStub.Object }; var result = await controller.UpdateQuantity(gameProduct.Id, true, 8) as ViewResult; Assert.That(result != null); Assert.That(result.Model, Is.InstanceOf<CartViewModel>()); var model = (CartViewModel)result.Model; Assert.That(model.Cart.Items.Count, Is.EqualTo(1)); Assert.That(model.Cart.Items.FirstOrDefault().Quantity, Is.EqualTo(8)); }
private static void SetupControllerWithIdentity(CartController controller, string email) { controller.User = new GenericPrincipal(new GenericIdentity(email), new string[] { }); }
public void Can_Checkout_And_Submit() { // Arrange Mock<IOrderProcessor> mock = new Mock<IOrderProcessor>(); Cart cart = new Cart(); cart.AddItem(new Product(), 1); CartController target = new CartController(null, mock.Object); // Act ViewResult result = target.Checkout(cart, new ShippingDetails()); // Assert // Passed onto the processor mock.Verify(m => m.ProcessOrder(It.IsAny<Cart>(), It.IsAny<ShippingDetails>()), Times.Once()); // Returning completed view Assert.AreEqual("Completed", result.ViewName); // Passing valid model Assert.AreEqual(true, result.ViewData.ModelState.IsValid); }
public void Can_View_Cart_Contents() { // Arrange - create a Cart Cart cart = new Cart(); // Arrange - create the controller CartController target = new CartController(null, null); // Act - call the Index action method CartIndexView result = (CartIndexView)target.Index(cart, "myUrl").ViewData.Model; // Assert Assert.AreSame(result.Cart, cart); Assert.AreEqual(result.ReturnUrl, "myUrl"); }
public async void UpdateQuantity_0Quantity_RemovesFromCart() { CartController controller = new CartController(veilDataAccess: null, idGetter: null, shippingCostService: null); var result = await controller.UpdateQuantity(Id, true, 0) as RedirectToRouteResult; Assert.That(result != null); Assert.That(result.RouteValues["action"], Is.EqualTo("RemoveItem")); }