public void HomeControllerEditProfilePOST()
        {
            const bool ISAJAX = true;
            var info = new UserViewModel()
            {
                Email = "Admin",
                Password = "******",
                Address = "Address",
                Phone = 999,
                Name = "AdminName2"
            };

            var factory = new WorkChannelFactoryMock();
            HomeController ctrl = new HomeController(factory);
            FakeControllerSession.SetFakeControllerContext(ctrl, ISAJAX);

            //Redirect if not logged
            // TODO - maybe we need to remove this
            ctrl.Session["LoggedIn"] = false;
            var res1 = ctrl.EditProfile(info) as RedirectToRouteResult;
            Assert.IsNotNull(res1);
            Assert.AreEqual(res1.RouteValues["action"], "Login");
            Assert.AreEqual(res1.RouteValues["controller"], "Account");

            //Pass if everything ok
            ctrl.Session["LoggedIn"] = true;
            var res2 = ctrl.EditProfile(info) as RedirectToRouteResult;
            Assert.IsNotNull(res2);
            Assert.AreEqual(res2.RouteValues["action"], "Index");

            var upd = factory.LastWorkChannel.UsersUpdated;
            Assert.AreEqual(upd.Count, 1);
            Assert.AreEqual(upd[0].Name, ((UserDTO)ctrl.Session["User"]).Name);
            Assert.AreEqual(upd[0].Name, "AdminName2");

            //Fault when wrong user
            ((UserDTO)ctrl.Session["User"]).Email = "Unknown";
            var res3 = ctrl.EditProfile(info) as ViewResult;
            Assert.IsNotNull(res3);
            Assert.AreEqual(res3.Model, "wrong user or password");
        }
        public void HomeControllerEditProfileGET()
        {
            const bool ISAJAX = false;
            var factory = new WorkChannelFactoryMock();
            HomeController ctrl = new HomeController(factory);
            FakeControllerSession.SetFakeControllerContext(ctrl, ISAJAX);

            //Redirect if not logged
            ctrl.Session["LoggedIn"] = false;
            var res1 = ctrl.EditProfile() as RedirectToRouteResult;
            Assert.IsNotNull(res1);
            Assert.AreEqual(res1.RouteValues["action"], "Login");
            Assert.AreEqual(res1.RouteValues["controller"], "Account");

            //Pass if everything ok
            ctrl.Session["LoggedIn"] = true;
            ctrl.EditProfile();
            var res2 = ctrl.EditProfile() as ViewResult;
            Assert.IsNotNull(res2);
            Assert.IsNotNull(res2.Model);

            var user = res2.Model as UserViewModel;
            Assert.IsNotNull(user);
            Assert.AreEqual(user.Email, "Admin");
        }