public void TestDeleteInactiveProfiles()
        {
            var membershipConfig = new NameValueCollection(_membershipConfig);
            var membershipProvider = new MongoMembershipProvider();
            membershipProvider.Initialize(DefaultMembershipName, membershipConfig);

            var profileConfig = new NameValueCollection(_profileConfig);
            var profileProvider = new MongoProfileProvider();
            profileProvider.Initialize(DefaultProfileName, profileConfig);

            SetUpTestProfiles(membershipProvider, profileProvider);

            int numberOfUsersBefore, numberOfUsersAfter;
            membershipProvider.GetAllUsers(0, int.MaxValue, out numberOfUsersBefore);

            var numberOfInactiveProfilesDeleted = profileProvider.DeleteInactiveProfiles(ProfileAuthenticationOption.All, DateTime.Now.AddDays(-1));
            var numberOfInactiveProfiles = profileProvider.GetNumberOfInactiveProfiles(ProfileAuthenticationOption.All, DateTime.Now.AddDays(-1));

            membershipProvider.GetAllUsers(0, int.MaxValue, out numberOfUsersAfter);

            Assert.AreEqual(40, numberOfInactiveProfilesDeleted);
            Assert.AreEqual(0, numberOfInactiveProfiles);

            // No users should be removed by this process.
            Assert.AreEqual(numberOfUsersBefore, numberOfUsersAfter);
        }
        public void TestDeleteProfilesUsingProfileInfoCollection()
        {
            var membershipConfig = new NameValueCollection(_membershipConfig);
            var membershipProvider = new MongoMembershipProvider();
            membershipProvider.Initialize(DefaultMembershipName, membershipConfig);

            var profileConfig = new NameValueCollection(_profileConfig);
            var profileProvider = new MongoProfileProvider();
            profileProvider.Initialize(DefaultProfileName, profileConfig);

            SetUpTestProfiles(membershipProvider, profileProvider);

            int numberOfUsersBefore, numberOfUsersAfter;
            membershipProvider.GetAllUsers(0, int.MaxValue, out numberOfUsersBefore);

            int totalRecords;
            var profiles = profileProvider.FindProfilesByUserName(ProfileAuthenticationOption.All, @"user3\d", 0, int.MaxValue, out totalRecords);
            var numberOfProfilesDeleted = profileProvider.DeleteProfiles(profiles);

            int numberOfProfilesRemaining;
            profileProvider.GetAllProfiles(ProfileAuthenticationOption.All, 0, int.MaxValue, out numberOfProfilesRemaining);

            membershipProvider.GetAllUsers(0, int.MaxValue, out numberOfUsersAfter);

            Assert.AreEqual(10, numberOfProfilesDeleted);
            Assert.AreEqual(70, numberOfProfilesRemaining);

            // No users should be removed by this process.
            Assert.AreEqual(numberOfUsersBefore, numberOfUsersAfter);
        }
        public void TestDeleteProfilesUsingStringArray()
        {
            var membershipConfig = new NameValueCollection(_membershipConfig);
            var membershipProvider = new MongoMembershipProvider();
            membershipProvider.Initialize(DefaultMembershipName, membershipConfig);

            var profileConfig = new NameValueCollection(_profileConfig);
            var profileProvider = new MongoProfileProvider();
            profileProvider.Initialize(DefaultProfileName, profileConfig);

            SetUpTestProfiles(membershipProvider, profileProvider);

            int numberOfUsersBefore, numberOfUsersAfter;
            membershipProvider.GetAllUsers(0, int.MaxValue, out numberOfUsersBefore);

            // Note that user0 does not have a profile.
            var numberOfProfilesDeleted = profileProvider.DeleteProfiles(new [] { "user0", "user44", "user56" });

            int numberOfProfilesRemaining;
            profileProvider.GetAllProfiles(ProfileAuthenticationOption.All, 0, int.MaxValue, out numberOfProfilesRemaining);

            membershipProvider.GetAllUsers(0, int.MaxValue, out numberOfUsersAfter);

            Assert.AreEqual(2, numberOfProfilesDeleted);
            Assert.AreEqual(78, numberOfProfilesRemaining);

            // No users should be removed by this process.
            Assert.AreEqual(numberOfUsersBefore, numberOfUsersAfter);
        }
        public void TestGetAllUsersUsingPaging()
        {
            var provider = new MongoMembershipProvider();
            provider.Initialize(DefaultName, _config);

            for (int i = 0; i < 100; i++) {
                MembershipCreateStatus status;
                provider.CreateUser("test" + i, "123456", "test" + i + "@test.com", "Test Question?", null, true, null,
                                    out status);
            }

            int totalRecords;
            var users = provider.GetAllUsers(0, 20, out totalRecords).Cast<MembershipUser>().ToArray();

            Assert.AreEqual(100, totalRecords);
            Assert.AreEqual(20, users.Length);

            for (int i = 0; i < 20; i++) {
                Assert.IsTrue(users[i].UserName.StartsWith("test"));
            }
        }