public void RemoveLine(Product product) { CartLine line = GetCartLineByProduct(product); if (line != default(CartLine)) _cartLineCollections.Remove(line); }
public void ProductController_GetImage_CanRetrieveImageData() { // Arrange var prod = new Product { ProductID = 2, Name = "Test", ImageData = new byte[] { }, ImageMimeType = "image/png" }; Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductID = 1, Name = "P1", Category = "Cat1" }, prod, new Product {ProductID = 3, Name = "P3", Category = "Cat1" }, }.AsQueryable()); var target = new ProductController(mock.Object); // Act var result = target.GetImage(2); // Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(FileResult)); Assert.AreEqual(prod.ImageMimeType, ((FileResult)result).ContentType); }
public decimal ComputeToProductValue(Product product) { CartLine line = GetCartLineByProduct(product); if (line == default(ICartRepository)) return default(decimal); return line.Product.Price * line.Quantity; }
public void Cannot_Save_Invalid_Changes() { // Arrange // - Create a mock repository Mock<IProductRepository> mock = new Mock<IProductRepository>(); // Arrange // - Crete the controller AdminController target = new AdminController(mock.Object); // Arrange // - Create a product Product product = new Product { Name = "Test" }; // Arrange // - Add an error to the model state target.ModelState.AddModelError("error", "error"); // Act // - Try to save the product ActionResult result = target.Edit(product, null); // Assert // - Check that the repository was not called mock.Verify(m => m.SaveProduct(It.IsAny<Product>()), Times.Never()); // Assert // - Check the method result type Assert.IsInstanceOfType(result, typeof(ViewResult)); }
public void Can_Retreive_Image_Data() { //Arrange - create a product with image data Product prod = new Product { ProductID = 2, Name = "test", ImageData = new Byte[] { }, ImageMimeType = "image/png" }; //Arrange -create a mock repository Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(p => p.Products).Returns(new Product[] { new Product{ProductID=1,Name="P1"}, prod, new Product{ProductID=3,Name="P3"} }.AsQueryable()); ProductController controller = new ProductController(mock.Object); ActionResult result = controller.GetImage(2); //Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(FileResult)); Assert.AreEqual(prod.ImageMimeType, ((FileResult)result).ContentType); }
public void Cant_Retrieve_NonExistint_Image_Data() { // Arrange - create a Product with image data Product prod = new Product { ProductID = 2, Name = "Test", ImageData = new byte[] { }, ImageMimeType = "image/png" }; // 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"}, prod, new Product {ProductID = 3, Name = "P3"} }.AsQueryable()); // Arrange - create the controller ProductController target = new ProductController(mock.Object); // Act - call the GetImage action method ActionResult result = target.GetImage(3); // Assert Assert.IsNull(result); }
public void Cannot_Retrieve_Image_Data_For_Invalid_Id() { // Arrange Product prod = new Product { ProductId = 2, Name = "Test", ImageData = new byte[] { }, ImageMimeType = "image/png" }; Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductId = 1, Name = "P1" }, new Product { ProductId = 2, Name = "P2" } }.AsQueryable()); ProductController target = new ProductController(mock.Object); // Act ActionResult result = target.GetImage(100); // Assert Assert.IsNull(result); }
public void SaveProduct(Product product) { if (product.ProductID == 0) { context.Products.Add(product); } context.SaveChanges(); }
public void Can_Delete_Valid_Products() { // Arrange // - Create a product Product prod = new Product { ProductID = 2, Name = "Test" }; // Arrange // - Create a mock repository Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product { ProductID = 1, Name = "P1" }, prod, new Product { ProductID = 3, Name = "P3" } }.AsQueryable()); // Arrange // - Create the controller AdminController target = new AdminController(mock.Object); // Act // - Delete the product target.Delete(prod.ProductID); // Assert // - Ensure that the repository delete method was called with the correct product mock.Verify(m => m.DeleteProduct(prod.ProductID)); }
public void Can_Retrieve_Image_Data() { // Arrange - create a Product with image data Product prod = new Product { ProductID = 2, Name = "Test", ImageData = new byte[] { }, ImageMimeType = "image/png" }; // 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"}, prod, new Product {ProductID = 3, Name = "P3"} }.AsQueryable()); // Arrange - create the controller ProductController target = new ProductController(mock.Object); // Act - call the GetImage action method ActionResult result = target.GetImage(2); // Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(FileResult)); Assert.AreEqual(prod.ImageMimeType, ((FileResult)result).ContentType); }
public virtual ActionResult Edit(Product product, HttpPostedFileBase image) { var products = this.productRepository.GetProducts(); if (products.FirstOrDefault(x => x.ProductID == product.ProductID) == null) { throw new IndexOutOfRangeException("Product not found"); } if (!this.ModelState.IsValid) { return View(product); } if (image != null) { product.ImageMimeType = image.ContentType; product.ImageData = new byte[image.ContentLength]; image.InputStream.Read(product.ImageData, 0, image.ContentLength); } this.productRepository.UpdateProduct(product); this.TempData["message"] = string.Format("The product {0} with id {1} was updated successfuly", product.Name, product.ProductID); return RedirectToAction(MVC.Administration.Admin.Details(product.ProductID)); }
private void AddBindings() { // put additional bindings here var prods = new Product[] { new Product{ProductID =1, Name ="Mangos", Category="Fruit", Description="Summer gift", Price=12M}, new Product{ProductID =2, Name ="Apples", Category="Fruit", Description="spring gift", Price=20M}, new Product{ProductID =3, Name ="Nike Joggers", Category="Sports", Description="football fever", Price=13M}, new Product{ProductID =4, Name ="Calculator", Category="Accounting", Description="japaniiii", Price=52M}, new Product{ProductID =5, Name ="PC", Category="Computers", Description="I am PC", Price=92M}, new Product{ProductID =6, Name ="MAC", Category="Computers", Description="I am Mac", Price=120M} }; //Mocking IProduct and setting what will its Products property will return Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(prods.AsQueryable()); //Registering the Mock object with IProductRepository //ninjectKernel.Bind<IProductRepository>().ToConstant(mock.Object); ninjectKernel.Bind<IProductRepository>().To<EFProductRepository>(); EmailSettings emailSettings = new EmailSettings { WriteAsFile = bool.Parse(ConfigurationManager.AppSettings["Email.WriteAsFile"] ?? "false") }; ninjectKernel.Bind<IOrderProcessor>() .To<EmailOrderProcessor>().WithConstructorArgument("settings", emailSettings); ninjectKernel.Bind<IAuthProvider>().To<FormsAuthProvider>(); }
public void Can_Retrieve_Image_Data() { Product product = new Product { ProductID = 2, Name = "Test", ImageData = new byte[] {}, ImageMimeType = "image/png" }; Mock<IProductRepository> mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product {ProductID = 1, Name = "P1"}, product, new Product {ProductID = 1, Name = "P3"} }.AsQueryable()); ProductController target = new ProductController(mock.Object); ActionResult result = target.GetImage(2); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(FileResult)); Assert.AreEqual(product.ImageMimeType,((FileResult)result).ContentType); }
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); } else { ModelState.Clear(); } // save the product repository.SaveProduct(product); // add a message to the viewbag TempData["message"] = string.Format("{0} has been saved", product.Name); // return the user to the list return RedirectToAction("Index"); } else { // there is something wrong with the data values return View(product); } }
public async Task<IHttpActionResult> PutProduct(int id, Product product) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != product.ProductID) { return BadRequest(); } db.Entry(product).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProductExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }
public void DeleteProduct(Product product) { Product prod = context.Products.Find(product.ProductID); if (prod != null) { context.Products.Remove(prod); context.SaveChanges(); } }
public void AddItem(Product product, int quantity) { var line = lines.FirstOrDefault(x => x.Product.ProductID == product.ProductID); if (line == null) lines.Add(new CartLine { Product = product, Quantity = quantity }); else line.Quantity += quantity; }
public void AddItem(Product product, int quantity) { CartLine line = lineCollection.FirstOrDefault(p => p.Product.Id == product.Id); if (line == null) lineCollection.Add(new CartLine() {Product = product, Quantity = quantity}); else line.Quantity += quantity; }
public void Save(Product product) { if (product.ProductID == 0) context.Products.Add(product); else context.Entry(product).State = System.Data.EntityState.Modified; context.SaveChanges(); }
public void AddItem(Product product, int quantity) { var line = lineCollection.FirstOrDefault(i => i.Product.ProductID == product.ProductID); if (line == null) lineCollection.Add(new CartLine { Product = product, Quantity = quantity }); else line.Quantity++; }
public void InsertOrUpdate(Product product) { if (product.ProductID == default(int)) _context.Products.Add(product); else _context.Entry(product).State = EntityState.Modified; _context.SaveChanges(); }
public void Add(Product product, int quantity) { var line = _lineCollection .FirstOrDefault(p => p.Product.ProductId == product.ProductId); if (line == null) _lineCollection.Add(new CartLine {Product = product, Quantity = quantity}); else line.Quantity += quantity; }
public void SaveProduct(Product product) { if (product.ProductID == 0) context.Products.Add(product); else context.Entry(product).State = EntityState.Modified; // not in the book! context.SaveChanges(); }
public ActionResult Edit(Product product) { if (!ModelState.IsValid) return View(product); _repo.SaveProduct(product); TempData["message"] = string.Format("Zapisano {0}", product.Name); return RedirectToAction("Index"); }
public int AddProduct(Product product) { using (var context = new EFSportsStoreContext()) { context.Product.Add(product); context.SaveChanges(); }; return product.Id; }
public void Can_Save_Valid_Changed() { var mock = new Mock<IProductRepository>(); var target = new AdminController(mock.Object); var product = new Product {Name = "test"}; var result = target.Edit(product); mock.Verify(m => m.SaveProduct(product)); Assert.IsNotInstanceOfType(result, typeof(ViewResult)); }
public void AddItem(Product product, int quantity) { CartLine line = lineCollection.Where(p => p.Product.ProductID == product.ProductID).FirstOrDefault(); if (null == line) lineCollection.Add(new CartLine { Product = product, Quantity = quantity }); else line.Quantity += quantity; }
public ActionResult Edit(Product product) { if (ModelState.IsValid) { repository.SaveProduct(product); TempData["message"] = string.Format("{0} has been saved", product.Name); return RedirectToAction("Index"); } else { return View(product); } }
public void AddItem(Product product, int quantity) { CartLine line = _lineCollection.FirstOrDefault(x => x.Product.ProductID == product.ProductID); if (line == null) _lineCollection.Add(new CartLine {Product = product, Quantity = quantity}); else line.Quantity += quantity; }
public ViewResult ProductDetail(int id, string product, string description, decimal price) { SportsStore.Domain.Entities.Product products = new SportsStore.Domain.Entities.Product(); products.ProductID = id; products.Name = product; products.Description = description; products.Price = price; return(View(products)); }
public void Cannot_Save_Invalid_Changes() { Mock<IProductRepository> mock = new Mock<IProductRepository>(); AdminController target = new AdminController(mock.Object); Product product = new Product{Name = "Test"}; target.ModelState.AddModelError("error", "error"); ActionResult result = target.Edit(product); mock.Verify(m => m.SaveProduct(It.IsAny<Product>()), Times.Never); Assert.IsInstanceOfType(result, typeof(ViewResult)); }