public ActionResult Edit(Product product) { if (ModelState.IsValid) { db.Entry(product).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(product); }
public ActionResult Create(Product product) { if (ModelState.IsValid) { db.Products.Add(product); db.SaveChanges(); return RedirectToAction("Index"); } return View(product); }
public void AddItem(Product product, int quantity) { CartLine line = lineCollection .Where(p => p.Product.ProductID == product.ProductID) .FirstOrDefault(); if (line == null) { lineCollection.Add(new CartLine { Product = product, Quantity = quantity }); } else { line.Quantity += quantity; } }
public void Calculate_Cart_Total() { // Arrange Product p1 = new Product { ProductID = 1, Name = "P1", Price = 100M }; Product p2 = new Product { ProductID = 2, Name = "P2", Price = 50M }; Cart target = new Cart(); // Act target.AddItem(p1, 1); target.AddItem(p2, 1); target.AddItem(p1, 3); decimal result = target.ComputeTotalValue(); // Assert Assert.AreEqual(result, 450M); }
public void SaveProduct(Product product) { if (product.ProductID == 0) { context.Products.Add(product); } else { Product p = context.Products.FirstOrDefault(m => m.ProductID == product.ProductID); p.Name = product.Name; p.Description = product.Description; p.Price = product.Price; p.Category = product.Category; p.ImageData = product.ImageData; p.ImageMimeType = product.ImageMimeType; } context.SaveChanges(); }
public ActionResult Edit(Product product, HttpPostedFileBase image) { if (ModelState.IsValid) { if (image != null) { product.ImageMimeType = image.ContentType; product.ImageData = new byte[image.ContentLength]; image.InputStream.Read(product.ImageData, 0, image.ContentLength); } repository.SaveProduct(product); TempData["message"] = string.Format("{0} has been saved", product.Name); return RedirectToAction("Index"); } else { return View(product); } }
public void DeleteProduct(Product product) { context.Products.Remove(product); context.SaveChanges(); }
public void RemoveLine(Product product) { lineCollection.RemoveAll(l => l.Product.ProductID == product.ProductID); }
public void Can_Save_Valid_Changes() { // Arrange Mock<IProductsRepository> mock = new Mock<IProductsRepository>(); AdminController target = new AdminController(mock.Object); Product product = new Product { Name = "Test" }; // Act ActionResult result = target.Edit(product,null); // Assert mock.Verify(m => m.SaveProduct(product)); Assert.IsNotInstanceOfType(result, typeof(ViewResult)); }
public void Can_Retrieve_Image_Data() { // Arrange Product prod = new Product { ProductID = 2, Name = "Test", ImageData = new byte[] { }, ImageMimeType = "image/png" }; Mock<IProductsRepository> mock = new Mock<IProductsRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductID = 1, Name = "P1"}, prod, new Product { ProductID = 3, Name = "P3"} }.AsQueryable()); ProductController target = new ProductController(mock.Object); // Act ActionResult result = target.GetImage(2); // Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(FileResult)); Assert.AreEqual(prod.ImageMimeType, ((FileResult)result).ContentType); }
public void Can_Remove_Line() { // Arrange Product p1 = new Product { ProductID = 1, Name = "P1" }; Product p2 = new Product { ProductID = 2, Name = "P2" }; Product p3 = new Product { ProductID = 3, Name = "P3" }; Cart target = new Cart(); target.AddItem(p1, 1); target.AddItem(p2, 3); target.AddItem(p3, 5); target.AddItem(p2, 1); // Act target.RemoveLine(p2); // Assert Assert.AreEqual(target.Lines.Where(c => c.Product == p2).Count(), 0); Assert.AreEqual(target.Lines.Count(), 2); }
public void Can_Delete_Valid_Products() { // Arrange Product prod = new Product { ProductID = 2, Name = "Test" }; Mock<IProductsRepository> mock = new Mock<IProductsRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductID = 1, Name = "P1"}, prod, new Product { ProductID = 3, Name = "P3"} }.AsQueryable()); AdminController target = new AdminController(mock.Object); // Act target.Delete(prod.ProductID); // Assert mock.Verify(m => m.DeleteProduct(prod)); }
public void Can_Clear_Contents() { // Arrange Product p1 = new Product { ProductID = 1, Name = "P1", Price = 100M }; Product p2 = new Product { ProductID = 2, Name = "P2", Price = 50M }; Cart target = new Cart(); target.AddItem(p1, 1); target.AddItem(p2, 1); // Act target.Clear(); // Assert Assert.AreEqual(target.Lines.Count(), 0); }
public void Can_Add_Quantity_For_Existing_Lines() { // Arrange Product p1 = new Product { ProductID = 1, Name = "P1" }; Product p2 = new Product { ProductID = 2, Name = "P2" }; Cart target = new Cart(); // Act target.AddItem(p1, 1); target.AddItem(p2, 1); target.AddItem(p1, 10); CartLine[] results = target.Lines.OrderBy(c => c.Product.ProductID).ToArray(); // Assert Assert.AreEqual(results.Length, 2); Assert.AreEqual(results[0].Quantity, 11); Assert.AreEqual(results[1].Quantity, 1); }
public void Can_Add_New_Lines() { Product p1 = new Product { ProductID = 1, Name = "P1" }; Product p2 = new Product { ProductID = 2, Name = "P2" }; // Arrange Cart target = new Cart(); // Act target.AddItem(p1, 1); target.AddItem(p2, 1); CartLine[] results = target.Lines.ToArray(); // Assert Assert.AreEqual(results.Length, 2); Assert.AreEqual(results[0].Product, p1); Assert.AreEqual(results[1].Product, p2); }
public void Cannot_Save_Invalid_Changes() { // Arrange Mock<IProductsRepository> mock = new Mock<IProductsRepository>(); AdminController target = new AdminController(mock.Object); Product product = new Product { Name = "Test" }; target.ModelState.AddModelError("error", "error"); // Act ActionResult result = target.Edit(product,null); // Assert mock.Verify(m => m.SaveProduct(It.IsAny<Product>()), Times.Never()); Assert.IsInstanceOfType(result, typeof(ViewResult)); }