public void FindUsersByUsernameQuery_Correctly_Builds_Expression()
        {
            var testObject = new FindUserByUsernameQuery("foo", "myApp");

            var        exp  = testObject.MatchingCriteria;
            Expression body = exp.Body;

            Assert.Equal(ExpressionType.AndAlso, body.NodeType);
            Assert.Contains("(user.Username == value(nHibernate.Membership.Provider.Queries.FindUserByUsernameQuery)._username)", body.ToString());
            Assert.Contains("(user.ApplicationName == value(nHibernate.Membership.Provider.Queries.FindUserByUsernameQuery)._applicationName)", body.ToString());
        }
        public void GetUser_Creates_a_FindUserByUsernameQuery_and_Passes_it_to_Repository()
        {
            var username = "******";
            var appName = "myApp";
            var findUserByUsernameQuery = new FindUserByUsernameQuery(username, appName);
            _queryFactory.Setup(qf => qf.createFindUserByUsernameQuery(username, appName)).Returns(findUserByUsernameQuery);

            testObject.GetUser(username, false);

            _repository.Verify(r => r.GetOne(findUserByUsernameQuery));
        }
        public void FindUsersByUsernameQuery_Correctly_Builds_Expression()
        {
            var testObject = new FindUserByUsernameQuery("foo", "myApp");

            var exp = testObject.MatchingCriteria;
            Expression body = exp.Body;

            Assert.Equal(ExpressionType.AndAlso, body.NodeType);
            Assert.Contains("(user.Username == value(nHibernate.Membership.Provider.Queries.FindUserByUsernameQuery)._username)", body.ToString());
            Assert.Contains("(user.ApplicationName == value(nHibernate.Membership.Provider.Queries.FindUserByUsernameQuery)._applicationName)", body.ToString());
        }
        public void GetUser_Creates_a_FindUserByUsernameQuery_and_Passes_it_to_Repository()
        {
            var username = "******";
            var appName  = "myApp";
            var findUserByUsernameQuery = new FindUserByUsernameQuery(username, appName);

            _queryFactory.Setup(qf => qf.createFindUserByUsernameQuery(username, appName)).Returns(findUserByUsernameQuery);

            testObject.GetUser(username, false);

            _repository.Verify(r => r.GetOne(findUserByUsernameQuery));
        }
        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 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);
        }