private static UserInfo CreateUserContextFromUser(User user)
        {
            var userContext = new UserInfo
            {
                UserId = user.UserId,
                DisplayName = user.DisplayName,
                UserIdentifier = user.Email,
                RoleName=Enum.GetName(typeof(UserRoles),user.RoleId)
            };

            return userContext;
        }
         public static FormsAuthenticationTicket CreateAuthenticationTicket(User user)
        {
            UserInfo userInfo = CreateUserContextFromUser(user);

            var ticket = new FormsAuthenticationTicket(
                1,
                user.FirstName,
                DateTime.Now,
                DateTime.Now.Add(FormsAuthentication.Timeout),
                false,
                userInfo.ToString());

            return ticket;
        }
 private bool ValidatePassword(User user, string password)
 {
     var encoded = Md5Encrypt.Md5EncryptPassword(password);
     return user.PasswordHash.Equals(encoded);
 }
        public void Login_Success_Redirects_To_Home()
        {
            //Arrange
               var routes = new RouteCollection();
               MvcApplication.RegisterRoutes(routes);
               var returnUrl = new Uri("http://efmvc.codeplex.com");

               Mock<HttpRequestBase> request = new Mock<HttpRequestBase>();
               Mock<HttpResponseBase> response = new Mock<HttpResponseBase>();
               Mock<HttpContextBase> context = new Mock<HttpContextBase>();

               context.SetupGet(x => x.Request).Returns(request.Object);
               context.SetupGet(x => x.Response).Returns(response.Object);
               request.Setup(x => x.Url).Returns(new Uri("http://*****:*****@gmail.com",
               UserId = 1,
               FirstName = "Shiju",
               LastName = "Var",
               DateCreated = DateTime.Now,
               Password = "******",
               RoleId = 2
               };
               userRepository.Setup(x => x.Get(It.IsAny<Expression<Func<User, bool>>>())).Returns(user);
               LogOnFormModel logon = new LogOnFormModel();
               logon.UserName = user.Email;
               logon.Password = "******";
               AccountController controller = new AccountController(commandBus.Object, userRepository.Object, formsAuthentication.Object);
               //Act
               controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);
               controller.Url = new UrlHelper(new RequestContext(context.Object, new RouteData()), routes);
               var actual = controller.Login(logon, returnUrl.AbsoluteUri);
               //Assert
               Assert.IsInstanceOfType(typeof(RedirectToRouteResult), actual ,"Wrong Type");
               var result = (RedirectToRouteResult)actual;
               Assert.AreEqual("Home", result.RouteValues["controller"]);
               Assert.AreEqual("Index", result.RouteValues["action"]);
        }
 public void User_Register_Redirects_To_Home()
 {
     //Arrange
        User user = new User()
        {
        Email = "*****@*****.**",
        UserId = 1,
        FirstName="Shiju",
        LastName="Var",
        DateCreated=DateTime.Now,
        Password = "******",
        RoleId = 2
        };
        commandBus.Setup(c => c.Submit(It.IsAny<UserRegisterCommand>())).Returns(new CommandResult(true));
        userRepository.Setup(x => x.Get(It.IsAny<Expression<Func<User, bool>>>())).Returns(user);
        Mapper.CreateMap<UserFormModel, UserRegisterCommand>();
        UserFormModel userForm = new UserFormModel
        {
        Email = "*****@*****.**",
        FirstName = "Shiju",
        LastName = "Var",
        Password = "******",
        ConfirmPassword = "******"
        };
        AccountController controller = new AccountController(commandBus.Object, userRepository.Object, formsAuthentication.Object);
        // Act
        var result= controller.Register(userForm) as RedirectToRouteResult;
        // Assert
        Assert.AreEqual("Home", result.RouteValues["controller"]);
        Assert.AreEqual("Index", result.RouteValues["action"]);
 }