示例#1
0
        public void LogOffAction_ShouldRedirect_To_HomeController_IndexAction()
        {
            // Arrange
            var service    = new SignIn_Register_UserServiceMock();
            var controller = new UserController(service, null);

            // Act
            var result = controller.LogOff() as RedirectToRouteResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(result.RouteValues["controller"], "Home");
            Assert.AreEqual(result.RouteValues["action"], "Index");
            // LogOff Was Called :
            Assert.IsTrue(((SignIn_Register_UserServiceMock)controller.UserService).SignOutWasCalled);
        }
示例#2
0
        public void LogOnPost_ShouldCall_LogIn_FromUserService()
        {
            // Arrange
            IUserService   service    = new SignIn_Register_UserServiceMock();
            UserController controller = new UserController(new SignIn_Register_UserServiceMock(), null);

            User user = new User()
            {
                UserName = "******",
                Password = "******"
            };

            // Act
            var result = controller.LogOn(user, null) as RedirectToRouteResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(((SignIn_Register_UserServiceMock)controller.UserService).SignInWasCalled);
        }
示例#3
0
        public void RegisterPOST_Should_Call_SignIn_ForValid_Data()
        {
            // Arrange
            var service    = new SignIn_Register_UserServiceMock();
            var controller = new UserController(service, null);

            var model = new RegisterViewModel()
            {
                UserName      = "******",
                Password      = "******",
                PasswordAgain = "password",
                Email         = "*****@*****.**"
            };

            // Act
            var result = controller.Register(model) as RedirectToRouteResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(result.RouteValues["controller"], "Home");
            Assert.AreEqual(result.RouteValues["action"], "Index");
            Assert.IsTrue(((SignIn_Register_UserServiceMock)controller.UserService).SignInWasCalled);
        }
示例#4
0
        public void RegisterPOST_Action_Should_RedisplayOnModelInvalid()
        {
            // Arrange
            var service    = new SignIn_Register_UserServiceMock();
            var controller = new UserController(service, null);

            var model = new RegisterViewModel()
            {
                UserName      = "******",
                Password      = "******",
                PasswordAgain = "password",
                Email         = "*****@*****.**"
            };

            controller.ModelState.AddModelError("No need to test the Model Binder", "Only Test Controller Logic");

            // Act
            var result = controller.Register(model) as ViewResult;

            // Assert:
            Assert.IsNotNull(result);
            Assert.IsTrue(result.ViewData.ModelState.Count > 0);
        }
示例#5
0
        public void RegisterPost_Action_ShouldDisplay_ErrorMessage_ForTaken_Username()
        {
            // Arrange
            var model = new RegisterViewModel()
            {
                UserName      = "******",
                Password      = "******",
                PasswordAgain = "password",
                Email         = "*****@*****.**"
            };

            var service    = new SignIn_Register_UserServiceMock();
            var controller = new UserController(service, null);

            // Act
            var result = controller.Register(model) as ViewResult;

            // Assert
            Assert.IsNotNull(result, "Expected View as Result");
            Assert.IsTrue(result.ViewData.ModelState.Count > 0, "Expecter Erros in Model");
            string errorEx = result.ViewData.ModelState[""].Errors[0].ErrorMessage;

            Assert.AreEqual(errorEx, RegisterResult.GetErrorMessage(RegisterErrorCodes.UsernameAlreadyTaken), "Expecter Correct Error Message");
        }