public void ValidateTuTorRegisterAccount_WithValidModel_ExpectValidNavigation()
        {
            Mock <HttpContextBase>    moqContext    = new Mock <HttpContextBase>();
            Mock <HttpRequestBase>    moqRequest    = new Mock <HttpRequestBase>();
            Mock <HttpPostedFileBase> moqPostedFile = new Mock <HttpPostedFileBase>();

            moqRequest.Setup(r => r.Files.Count).Returns(0);
            moqContext.Setup(r => r.Request).Returns(moqRequest.Object);


            // Arrange
            var controller = new UserController();
            var tutor      = new tutor
            {
                fullname = "Trần Phú Hòa",
                username = "******",
                phone    = "090 123 7654",
                email    = "*****@*****.**",
                password = "******"
            };

            controller.ControllerContext = new ControllerContext(moqContext.Object, new RouteData(), controller);
            var validationResults = TestModelHelper.ValidateModel(controller, tutor);

            // Act

            var redirectRoute = controller.RegisterTuTor(tutor) as RedirectToRouteResult;

            //Assert
            Assert.IsNotNull(redirectRoute);
            Assert.AreEqual("ConfirmEmail", redirectRoute.RouteValues["action"]);
            Assert.AreEqual("User", redirectRoute.RouteValues["controller"]);
            Assert.AreEqual(0, validationResults.Count);
        }
示例#2
0
        public ActionResult RegisterTuTor(tutor tutor, HttpPostedFileBase certificate)
        {
            tutor.status = 2;
            model.tutors.Add(tutor);
            model.SaveChanges();

            //save certificate

            //create directory
            string        AppPath  = AppDomain.CurrentDomain.BaseDirectory;
            string        filePath = AppPath + String.Format("App_Data\\certificates\\{0}", tutor.tutor_id);
            DirectoryInfo direc    = Directory.CreateDirectory(filePath);

            //save certificate
            if (certificate != null)
            {
                if (certificate.ContentLength > 0)
                {
                    try
                    {
                        string filename = Path.GetFileName(certificate.FileName);
                        string path     = Path.Combine(Server.MapPath(filePath), filename);
                        certificate.SaveAs(path);
                    }
                    catch (Exception)
                    {
                        //throw error here
                    }
                }
            }
            return(RedirectToAction("ConfirmEmail", "User"));
        }
        public void ParentLogin_WithAccountStatusIs3()
        {
            //Arrange
            Mock <HttpContextBase>      moqContext = new Mock <HttpContextBase>();
            Mock <HttpRequestBase>      moqRequest = new Mock <HttpRequestBase>();
            Mock <HttpSessionStateBase> moqSession = new Mock <HttpSessionStateBase>();

            moqContext.Setup(ctx => ctx.Session).Returns(moqSession.Object);
            moqContext.Setup(r => r.Request).Returns(moqRequest.Object);

            var controller    = new UserController();
            var parentAccount = new tutor
            {
                email    = "*****@*****.**",
                password = "******",
            };

            controller.ControllerContext = new ControllerContext(moqContext.Object, new RouteData(), controller);
            var validationResults = TestModelHelper.ValidateModel(controller, parentAccount);
            var temp = (new { error = "Block", message = "Tài khoản của bạn đã bị khóa , vui lòng liên hệ ban quản trị hệ thống", status = 3 });

            //Action
            var redirectRoute = controller.Login(parentAccount.email, parentAccount.password, null) as JsonResult;

            //Assert
            Assert.IsNotNull(redirectRoute.Data);
            Assert.AreEqual(temp.ToString(), redirectRoute.Data.ToString());
        }
        public void TutorLogin_WithValidUsernameAndInvalidPassword()
        {
            //Arrange
            Mock <HttpContextBase>      moqContext = new Mock <HttpContextBase>();
            Mock <HttpRequestBase>      moqRequest = new Mock <HttpRequestBase>();
            Mock <HttpSessionStateBase> moqSession = new Mock <HttpSessionStateBase>();

            moqContext.Setup(ctx => ctx.Session).Returns(moqSession.Object);
            moqContext.Setup(r => r.Request).Returns(moqRequest.Object);

            var controller   = new UserController();
            var tutorAccount = new tutor
            {
                email    = "*****@*****.**",
                password = "******",
            };

            controller.ControllerContext = new ControllerContext(moqContext.Object, new RouteData(), controller);
            var validationResults = TestModelHelper.ValidateModel(controller, tutorAccount);

            //Action
            var redirectRoute = controller.Login(tutorAccount.email, tutorAccount.password, null) as JsonResult;
            var temp          = (new { error = "No Access", message = "Mật khẩu sai rồi !", status = 0 });

            //Assert
            Assert.IsNotNull(redirectRoute.Data);
            Assert.AreEqual(temp.ToString(), redirectRoute.Data.ToString());
        }
        public void ParentLogin_WithValidInput()
        {
            //Arrange
            Mock <HttpContextBase>      moqContext = new Mock <HttpContextBase>();
            Mock <HttpRequestBase>      moqRequest = new Mock <HttpRequestBase>();
            Mock <HttpSessionStateBase> moqSession = new Mock <HttpSessionStateBase>();

            moqContext.Setup(ctx => ctx.Session).Returns(moqSession.Object);
            moqContext.Setup(r => r.Request).Returns(moqRequest.Object);

            var controller    = new UserController();
            var parentAccount = new tutor
            {
                email    = "*****@*****.**",
                password = "******",
            };

            controller.ControllerContext = new ControllerContext(moqContext.Object, new RouteData(), controller);
            var validationResults = TestModelHelper.ValidateModel(controller, parentAccount);

            //Action
            var redirectRoute = controller.Login(parentAccount.email, parentAccount.password, null) as JsonResult;

            //Assert
            Assert.IsNotNull(redirectRoute.Data);
        }
        public void ParentLogin_WithInvalidEmail()
        {
            //Arrange
            Mock <HttpContextBase>      moqContext = new Mock <HttpContextBase>();
            Mock <HttpRequestBase>      moqRequest = new Mock <HttpRequestBase>();
            Mock <HttpSessionStateBase> moqSession = new Mock <HttpSessionStateBase>();

            moqContext.Setup(ctx => ctx.Session).Returns(moqSession.Object);
            moqContext.Setup(r => r.Request).Returns(moqRequest.Object);

            var controller    = new UserController();
            var parentAccount = new tutor
            {
                email    = "*****@*****.**",
                password = "******",
            };

            controller.ControllerContext = new ControllerContext(moqContext.Object, new RouteData(), controller);
            var validationResults = TestModelHelper.ValidateModel(controller, parentAccount);

            //Action
            var redirectRoute = controller.Login(parentAccount.email, parentAccount.password, null) as JsonResult;
            var temp          = (new { error = "No Access", message = "username hoặc email không tồn tại", status = 0 });

            //Assert
            Assert.IsNotNull(redirectRoute.Data);
            Assert.AreEqual(temp.ToString(), redirectRoute.Data.ToString());
        }
示例#7
0
        public void TutorLogin_WithInvalidUserName()
        {
            //Arrange
            Mock <HttpContextBase>      moqContext = new Mock <HttpContextBase>();
            Mock <HttpRequestBase>      moqRequest = new Mock <HttpRequestBase>();
            Mock <HttpSessionStateBase> moqSession = new Mock <HttpSessionStateBase>();

            moqContext.Setup(ctx => ctx.Session).Returns(moqSession.Object);
            moqContext.Setup(r => r.Request).Returns(moqRequest.Object);

            var controller   = new UserController();
            var tutorAccount = new tutor
            {
                email    = "*****@*****.**",
                password = "******",
            };

            controller.ControllerContext = new ControllerContext(moqContext.Object, new RouteData(), controller);
            var validationResults = TestModelHelper.ValidateModel(controller, tutorAccount);

            //Action
            var redirectRoute = controller.Login(tutorAccount.email, tutorAccount.password, null) as ViewResult;

            //Assert
            Assert.IsNotNull(redirectRoute);
            Assert.AreEqual("username hoặc email không tồn tại", redirectRoute.ViewBag.msg);
            Assert.AreEqual("Login", redirectRoute.ViewName);
        }
        public void StudentLogin_WithAccountStatusIs2()
        {
            //Arrange
            Mock <HttpContextBase>      moqContext = new Mock <HttpContextBase>();
            Mock <HttpRequestBase>      moqRequest = new Mock <HttpRequestBase>();
            Mock <HttpSessionStateBase> moqSession = new Mock <HttpSessionStateBase>();

            moqContext.Setup(ctx => ctx.Session).Returns(moqSession.Object);
            moqContext.Setup(r => r.Request).Returns(moqRequest.Object);

            var controller     = new UserController();
            var studentAccount = new tutor
            {
                username = "******",
                password = "******",
            };

            controller.ControllerContext = new ControllerContext(moqContext.Object, new RouteData(), controller);
            var validationResults = TestModelHelper.ValidateModel(controller, studentAccount);
            var temp = (new { error = "No Access", message = "Tài khoản của bạn chưa được kích hoạt", status = 2 });

            //Action
            var redirectRoute = controller.Login(studentAccount.username, studentAccount.password, null) as JsonResult;

            //Assert
            Assert.IsNotNull(redirectRoute.Data);
            Assert.AreEqual(temp.ToString(), redirectRoute.Data.ToString());
        }
示例#9
0
        public void ParentLogin_WithAccountStatusIs2()
        {
            //Arrange
            Mock <HttpContextBase>      moqContext = new Mock <HttpContextBase>();
            Mock <HttpRequestBase>      moqRequest = new Mock <HttpRequestBase>();
            Mock <HttpSessionStateBase> moqSession = new Mock <HttpSessionStateBase>();

            moqContext.Setup(ctx => ctx.Session).Returns(moqSession.Object);
            moqContext.Setup(r => r.Request).Returns(moqRequest.Object);

            var controller    = new UserController();
            var parentAccount = new tutor
            {
                email    = "*****@*****.**",
                password = "******",
            };

            controller.ControllerContext = new ControllerContext(moqContext.Object, new RouteData(), controller);
            var validationResults = TestModelHelper.ValidateModel(controller, parentAccount);

            //Action
            var redirectRoute = controller.Login(parentAccount.email, parentAccount.password, null) as ViewResult;

            //Assert
            Assert.IsNotNull(redirectRoute);
            Assert.AreEqual("Tài khoản của bạn chưa được kích hoạt", redirectRoute.ViewBag.msg);
            Assert.AreEqual("Login", redirectRoute.ViewName);
        }
示例#10
0
        public void ParentLogin_WithValidEmailAndInvanlidPassword()
        {
            //Arrange
            Mock <HttpContextBase>      moqContext = new Mock <HttpContextBase>();
            Mock <HttpRequestBase>      moqRequest = new Mock <HttpRequestBase>();
            Mock <HttpSessionStateBase> moqSession = new Mock <HttpSessionStateBase>();

            moqContext.Setup(ctx => ctx.Session).Returns(moqSession.Object);
            moqContext.Setup(r => r.Request).Returns(moqRequest.Object);

            var controller    = new UserController();
            var parentAccount = new tutor
            {
                email    = "*****@*****.**",
                password = "******",
            };

            controller.ControllerContext = new ControllerContext(moqContext.Object, new RouteData(), controller);
            var validationResults = TestModelHelper.ValidateModel(controller, parentAccount);

            //Action
            var redirectRoute = controller.Login(parentAccount.email, parentAccount.password, null) as ViewResult;

            //Assert
            Assert.IsNotNull(redirectRoute);
            Assert.AreEqual("Mật khẩu sai rồi !", redirectRoute.ViewBag.msg);
            Assert.AreEqual("Login", redirectRoute.ViewName);
        }
示例#11
0
        public void StudentLogin_WithAccountStatusIs3()
        {
            //Arrange
            Mock <HttpContextBase>      moqContext = new Mock <HttpContextBase>();
            Mock <HttpRequestBase>      moqRequest = new Mock <HttpRequestBase>();
            Mock <HttpSessionStateBase> moqSession = new Mock <HttpSessionStateBase>();

            moqContext.Setup(ctx => ctx.Session).Returns(moqSession.Object);
            moqContext.Setup(r => r.Request).Returns(moqRequest.Object);

            var controller     = new UserController();
            var studentAccount = new tutor
            {
                username = "******",
                password = "******",
            };

            controller.ControllerContext = new ControllerContext(moqContext.Object, new RouteData(), controller);
            var validationResults = TestModelHelper.ValidateModel(controller, studentAccount);

            //Action
            var redirectRoute = controller.Login(studentAccount.username, studentAccount.password, null) as ViewResult;

            //Assert
            Assert.IsNotNull(redirectRoute);
            Assert.AreEqual("Tài khoản của bạn đã bị khóa , vui lòng liên hệ ban quản trị hệ thống", redirectRoute.ViewBag.msg1);
            Assert.AreEqual("Login", redirectRoute.ViewName);
        }
示例#12
0
        public void TutorLogin_WithValidInput()
        {
            //Arrange
            Mock <HttpContextBase>      moqContext = new Mock <HttpContextBase>();
            Mock <HttpRequestBase>      moqRequest = new Mock <HttpRequestBase>();
            Mock <HttpSessionStateBase> moqSession = new Mock <HttpSessionStateBase>();

            moqContext.Setup(ctx => ctx.Session).Returns(moqSession.Object);
            moqContext.Setup(r => r.Request).Returns(moqRequest.Object);

            var controller   = new UserController();
            var tutorAccount = new tutor
            {
                email    = "*****@*****.**",
                password = "******",
            };

            controller.ControllerContext = new ControllerContext(moqContext.Object, new RouteData(), controller);
            var validationResults = TestModelHelper.ValidateModel(controller, tutorAccount);

            //Action
            var redirectRoute = controller.Login(tutorAccount.email, tutorAccount.password, null) as RedirectToRouteResult;

            //Assert
            Assert.IsNotNull(redirectRoute);
            Assert.AreEqual("InfoOfTutor", redirectRoute.RouteValues["action"]);
            Assert.AreEqual("Tutor", redirectRoute.RouteValues["controller"]);
        }
示例#13
0
        public ActionResult RegisterTuTor(tutor tutor /*, HttpPostedFileBase certificate, string password, string email*/)
        {
            string email      = "";
            string password   = "";
            var    tutorEmail = model.tutors.FirstOrDefault(x => x.email == tutor.email || x.username == tutor.username);


            if (tutorEmail == null)
            {
                //add new tutor
                tutor.status = 2;
                //if (certificate != null && certificate.ContentLength > 0)
                //{
                //    tutor.certificate = certificate.FileName;
                //}
                tutor.specialized = tutor.specialized.ToUpper();


                tutor.password        = commonService.hash(tutor.password);
                tutor.dateCreate      = DateTime.Now;
                tutor.status_register = 1;
                model.tutors.Add(tutor);
                model.SaveChanges();

                //save certificate

                //create directory
                string        AppPath  = AppDomain.CurrentDomain.BaseDirectory;
                string        filePath = AppPath + String.Format("Content\\img\\certificates\\{0}", tutor.tutor_id);
                DirectoryInfo direc    = Directory.CreateDirectory(filePath);

                //save certificate
                //if (certificate != null && certificate.ContentLength > 0)
                //{
                //    string fileName = Path.GetFileName(certificate.FileName);
                //    string path = String.Format("{0}\\{1}", filePath, fileName);
                //    certificate.SaveAs(path);
                //}
                return(RedirectToAction("ConfirmEmail", "User"));
            }
            else
            {
                ViewBag.Er = "Username hoặc email đã tồn tại !";
                return(View("Register"));
            }
        }
示例#14
0
        public JsonResult editProfileTutor(string data)
        {
            int     tutorId = int.Parse(Session["UserID"].ToString());
            string  message;
            var     status = HttpStatusCode.OK;
            JObject tutor  = JObject.Parse(data);
            tutor   tt     = db.tutors.Find(tutorId);

            tt.fullname    = tutor["fullname"].ToString();
            tt.username    = tutor["username"].ToString();
            tt.address     = tutor["address"].ToString();
            tt.birthday    = DateTime.ParseExact(tutor["birthday"].ToString(), "dd/MM/yyyy", null);
            tt.phone       = tutor["phone"].ToString();
            tt.specialized = tutor["specialized"].ToString();
            tt.job         = tutor["job"].ToString();
            tt.experience  = tutor["experience"].ToString();

            db.SaveChanges();
            message = "Cập nhật thông tin thành công";
            var response = new { message = message, status = status };

            return(Json(response, JsonRequestBehavior.AllowGet));
        }
示例#15
0
        public ActionResult Register()
        {
            var user = new tutor();

            return(View(user));
        }