public void DeleteUser_Returns_True_if_User_is_Deleted()
        {
            User user = new User { Id = Guid.NewGuid() };
            _repository.Setup(r => r.GetOne(It.IsAny<FindUsersWithNameLikeQuery>())).Returns(user);

            var returnValue = testObject.DeleteUser("foo", false);

            Assert.True(returnValue);
        }
        public void GetUserNameByEmail_Returns_Username_From_Repository()
        {
            var email = "*****@*****.**";
            var username = "******";
            var user = new User { Username = username };
            _queryFactory.Setup(qf => qf.createFindUserByEmailQuery(It.IsAny<string>(), It.IsAny<string>())).Returns(new FindUserByEmailQuery("",""));
            _repository.Setup(r => r.GetOne(It.IsAny<FindUserByEmailQuery>())).Returns(user);

            var result = testObject.GetUserNameByEmail(email);

            Assert.Equal(result, username);
        }
        public void GetUser_Passes_UserId_to_Repository_and_Passes_Matching_User_Back()
        {
            var id = Guid.NewGuid();
            var userName = "******";
            var user = new User { Username = userName };
            _repository.Setup(r => r.GetById<User>(id)).Returns(user);

            var result = testObject.GetUser(id, false);

            Assert.IsType<MembershipUser>(result);
            Assert.Equal(userName, result.UserName);
        }
        public void DeleteUser_Creates_a_FindUsersByName_and_Passes_UserId_to_Delete_in_Repository()
        {
            var name = "foo";
            var appName = "myApp";
            var findUsersByNameQuery = new FindUsersWithNameLikeQuery(name, appName);
            _queryFactory.Setup(qf => qf.createFindUsersWithNameLikeQuery(name, appName)).Returns(findUsersByNameQuery);
            User user = new User { Id =  Guid.NewGuid() };
            _repository.Setup(r => r.GetOne(findUsersByNameQuery)).Returns(user);

            testObject.DeleteUser(name, false);

            _repository.Verify(r => r.Delete<User>(user.Id));
        }
        public void GetUser_Does_NOT_Update_User_LastActivityDate_When_userIsOnline_is_False()
        {
            var startTime = DateTime.Now;
            var username = "******";
            var user = new User { Username = username, LastActivityDate = startTime };
            _queryFactory.Setup(qf => qf.createFindUserByUsernameQuery(It.IsAny<string>(), It.IsAny<string>())).Returns(new FindUserByUsernameQuery("", ""));
            _repository.Setup(r => r.GetOne(It.IsAny<FindUserByUsernameQuery>())).Returns(user);

            var result = testObject.GetUser(username, false);

            var stopTime = DateTime.Now;
            Assert.Equal(result.LastActivityDate, startTime);
            _repository.Verify(r => r.Save<User>(user), Times.Never());
        }
        public void UnlockUser_Sets_IsLockedOut_to_False_and_Updates_LastLockedOutDate()
        {
            var userName = "******";
            var appName = "myApp";
            var startTime = DateTime.Now;
            var lastLockedOutDate = DateTime.Parse("10-03-10");
            var user = new User { IsLockedOut = true, LastLockedOutDate = lastLockedOutDate };
            var query = new FindUserByUsernameQuery("", "");
            _queryFactory.Setup(qf => qf.createFindUserByUsernameQuery(userName, appName)).Returns(query);
            _repository.Setup(r => r.GetOne<User>(query)).Returns(user);

            testObject.UnlockUser(userName);

            _repository.Verify(r => r.Save<User>(user));
            Assert.False(user.IsLockedOut);
            Assert.True(user.LastLockedOutDate > lastLockedOutDate && user.LastLockedOutDate >= startTime);
        }
        public UserTranslatorTests()
        {
            user = new User
            {
                Username = Username,
                Id = Id,
                Email = Email,
                PasswordQuestion = PasswordQuestion,
                Comment = Comment,
                IsApproved = IsApproved,
                IsLockedOut = IsLockedOut,
                CreationDate = CreationDate,
                LastLoginDate = LastLoginDate,
                LastActivityDate = LastActivityDate,
                LastPasswordChangedDate = LastPasswordChangedDate,
                LastLockedOutDate = LastLockedOutDate
            };

            testObject = new UserTranslator();
        }
        public void UpdateUser_Translates_MembershipUser_and_Passes_User_to_Repository()
        {
            Mock<IUserTranslator> _userTranslator = new Mock<IUserTranslator>();
            testObject = new nHibernateMembershipProvider(_repository.Object, _queryFactory.Object, _userTranslator.Object);

            var memberShipUser = new MembershipUser("nHibernateMembershipProvider",
                                        "userName", -1, "*****@*****.**",
                                        "PasswordQuestion", "Comment",
                                        true, false,
                                        DateTime.Now, DateTime.Now,
                                        DateTime.Now,
                                        DateTime.Now,
                                        DateTime.Now);

            var user = new User();

            _userTranslator.Setup(ut => ut.TranslateToUser(memberShipUser)).Returns(user);

            testObject.UpdateUser(memberShipUser);

            _repository.Verify(r => r.Save<User>(user));
        }
 private void UpdateUserLastActivityDate(bool userIsOnline, User user)
 {
     if (userIsOnline)
     {
         user.LastActivityDate = DateTime.Now;
         _repository.Save<User>(user);
     }
 }
 private MembershipUser CheckUserForActivityUpdate(User user, bool userIsOnline)
 {
     if (user == null) return null;
     UpdateUserLastActivityDate(userIsOnline, user);
     return _userTranslator.TranslateToMemberShipUser(user);
 }
        public void GetUser_Returns_User_From_Repository()
        {
            var username = "******";
            var user = new User { Username = username };
            _queryFactory.Setup(qf => qf.createFindUserByUsernameQuery(It.IsAny<string>(), It.IsAny<string>())).Returns(new FindUserByUsernameQuery("", ""));
            _repository.Setup(r => r.GetOne(It.IsAny<FindUserByUsernameQuery>())).Returns(user);

            var result = testObject.GetUser(username, false);

            Assert.IsType<MembershipUser>(result);
            Assert.Equal(result.UserName, username);
        }
        public void GetUser_With_UserId_Updates_User_LastActivityDate_When_userIsOnline_is_True()
        {
            var startTime = DateTime.Now;
            var id = Guid.NewGuid();
            var userName = "******";
            var user = new User { Username = userName };
            _repository.Setup(r => r.GetById<User>(id)).Returns(user);

            var result = testObject.GetUser(id, true);

            var stopTime = DateTime.Now;
            Assert.True(result.LastActivityDate >= startTime && result.LastActivityDate <= stopTime);
            _repository.Verify(r => r.Save<User>(user));
        }
        public void GetUser_With_UserId_Does_NOT_Update_User_LastActivityDate_When_userIsOnline_is_False()
        {
            var startTime = DateTime.Now;
            var id = Guid.NewGuid();
            var user = new User { LastActivityDate = startTime };
            _repository.Setup(r => r.GetById<User>(id)).Returns(user);

            var result = testObject.GetUser(id, false);

            var stopTime = DateTime.Now;
            Assert.Equal(result.LastActivityDate, startTime);
            _repository.Verify(r => r.Save<User>(user), Times.Never());
        }