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;
 }
Beispiel #4
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
 public void SaveProduct(Product product)
 {
     if (product.ProductID == 0) {
         context.Products.Add(product);
     }
     context.SaveChanges();
 }
Beispiel #9
0
        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));
        }
Beispiel #10
0
        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();
     }
 }
Beispiel #17
0
 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;
 }
Beispiel #18
0
 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();
        }
Beispiel #22
0
 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;
 }
Beispiel #26
0
 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));
 }
Beispiel #27
0
        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;
        }
Beispiel #30
0
        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));
        }
Beispiel #31
0
 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));
 }