public void TestEditP()
        {
            var rand = new Random();
            var db   = new CsK24_BookStoreEntities();
            var sach = db.SACHes.AsNoTracking().First();

            sach.TENSACH  = rand.NextDouble().ToString();
            sach.THONGTIN = rand.NextDouble().ToString();
            sach.GIASACH  = -rand.Next();

            var controller = new SACHesController();

            var result0 = controller.Edit(sach, null) as ViewResult;

            Assert.IsNotNull(result0);
            Assert.AreEqual("Price is less than Zero", controller.ModelState["Price"].Errors[0].ErrorMessage);

            var picture = new Mock <HttpPostedFileBase>();
            var server  = new Mock <HttpServerUtilityBase>();
            var context = new Mock <HttpContextBase>();

            context.Setup(c => c.Server).Returns(server.Object);
            controller.ControllerContext = new ControllerContext(context.Object,
                                                                 new System.Web.Routing.RouteData(), controller);

            var fileName = String.Empty;

            server.Setup(s => s.MapPath(It.IsAny <string>())).Returns <string>(s => s);
            picture.Setup(p => p.SaveAs(It.IsAny <string>())).Callback <string>(s => fileName = s);

            using (var scope = new TransactionScope())
            {
                sach.GIASACH = -sach.GIASACH;
                controller.ModelState.Clear();
                var result1 = controller.Edit(sach, picture.Object) as RedirectToRouteResult;
                Assert.IsNotNull(result1);
                Assert.AreEqual("Index", result1.RouteValues["action"]);

                var entity = db.SACHes.Find(sach.MASACH);
                Assert.IsNotNull(entity);
                Assert.AreEqual(sach.TENSACH, entity.TENSACH);
                Assert.AreEqual(sach.THONGTIN, entity.THONGTIN);
                Assert.AreEqual(sach.GIASACH, entity.GIASACH);

                Assert.AreEqual("~/Upload/Sach/" + sach.MASACH, fileName);
                //Assert.IsTrue(fileName.StartsWith("~/Upload/Products/"));
                //Assert.IsTrue(fileName.EndsWith(entity.id.ToString()));
            }
        }
        public void TestEditG()
        {
            var controller = new SACHesController();
            var result0    = controller.Edit(0) as HttpNotFoundResult;

            Assert.IsNotNull(result0);

            var db      = new CsK24_BookStoreEntities();
            var sach    = db.SACHes.First();
            var result1 = controller.Edit(sach.MASACH) as ViewResult;

            Assert.IsNotNull(result1);

            var model = result1.Model as SACH;

            Assert.IsNotNull(model);
            Assert.AreEqual(sach.TENSACH, model.TENSACH);
            Assert.AreEqual(sach.GIASACH, model.GIASACH);
            Assert.AreEqual(sach.THONGTIN, model.THONGTIN);
        }