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); }
/// <summary> /// Creates 100 users, 80 of which have profiles, 40 are inactive, 40 are active, 40 are authenticated and 40 are anonymous. /// </summary> /// <param name="membershipProvider"></param> /// <param name="profileProvider"></param> private void SetUpTestProfiles(MongoMembershipProvider membershipProvider, MongoProfileProvider profileProvider) { // Make 20 users that have no profiles. for (int i = 0; i < 20; i++) { MembershipCreateStatus status; membershipProvider.CreateUser("user" + i, "123456", "user" + i + "@test.com", null, null, true, null, out status); } // Make 80 users that have profiles, half of them anonymous. for (int i = 20; i < 100; i++) { bool isAuthenticated = i % 2 == 0; if (isAuthenticated) { MembershipCreateStatus status; membershipProvider.CreateUser("user" + i, "123456", "user" + i + "@test.com", null, null, true, null, out status); } var values = new SettingsPropertyValueCollection(); AddProviderSpecificPropertyValuesTo(values, allowAnonymous: true, prefix: string.Format("({0})", i)); profileProvider.SetPropertyValues(TestHelper.GenerateSettingsContext("user" + i, isAuthenticated), values); } // Get a direction connection to the database so we can edit the LastActivityDate. var url = new MongoUrl(ConnectionString); var server = MongoServer.Create(url); var database = server.GetDatabase(url.DatabaseName); var collection = database.GetCollection(membershipProvider.ApplicationName + ".users"); var inactiveDate = DateTime.Now.AddDays(-10); // Make half of all profiled users inactive. var query = Query.Where("this.UserName.substr(4) >= 60"); var update = Update.Set("Profile.LastActivityDate", SerializationHelper.SerializeDateTime(inactiveDate)); collection.Update(query, update, UpdateFlags.Multi); }
public void TestSetPropertyValuesWithAnonymousUser() { var profileConfig = new NameValueCollection(_profileConfig); var profileProvider = new MongoProfileProvider(); profileProvider.Initialize(DefaultProfileName, profileConfig); var userName = Guid.NewGuid().ToString(); var collection = new SettingsPropertyValueCollection(); AddProviderSpecificPropertyValuesTo(collection, allowAnonymous: true); profileProvider.SetPropertyValues(TestHelper.GenerateSettingsContext(userName, false), collection); }
public void TestSetPropertyValues() { var membershipConfig = new NameValueCollection(_membershipConfig); var membershipProvider = new MongoMembershipProvider(); membershipProvider.Initialize(DefaultMembershipName, membershipConfig); MembershipCreateStatus status; membershipProvider.CreateUser("user", "123456", "*****@*****.**", null, null, true, null, out status); var profileConfig = new NameValueCollection(_profileConfig); var profileProvider = new MongoProfileProvider(); profileProvider.Initialize(DefaultProfileName, profileConfig); var collection = new SettingsPropertyValueCollection(); AddProviderSpecificPropertyValuesTo(collection, allowAnonymous: false); profileProvider.SetPropertyValues(TestHelper.GenerateSettingsContext("user", true), collection); }
public void TestInitializeWhenCalledTwice() { var config = new NameValueCollection(_profileConfig); var provider = new MongoProfileProvider(); Assert.Throws<InvalidOperationException>(() => { provider.Initialize(DefaultProfileName, config); provider.Initialize(DefaultProfileName, config); }); }
public void TestGetPropertyValuesUsingXmlProperties() { var membershipConfig = new NameValueCollection(_membershipConfig); var membershipProvider = new MongoMembershipProvider(); membershipProvider.Initialize(DefaultMembershipName, membershipConfig); MembershipCreateStatus status; membershipProvider.CreateUser("user", "123456", "*****@*****.**", null, null, true, null, out status); var profileConfig = new NameValueCollection(_profileConfig); var profileProvider = new MongoProfileProvider(); profileProvider.Initialize(DefaultProfileName, profileConfig); var values = new SettingsPropertyValueCollection(); AddXmlPropertyValuesTo(values, allowAnonymous: false); profileProvider.SetPropertyValues(TestHelper.GenerateSettingsContext("user", true), values); var properties = new SettingsPropertyCollection(); AddXmlPropertiesTo(properties, allowAnonymous: false); var retrievedValues = profileProvider .GetPropertyValues(TestHelper.GenerateSettingsContext("user", true), properties); var rawRetrievedValues = retrievedValues .Cast<SettingsPropertyValue>() .Select(value => value.PropertyValue) .ToList(); Assert.AreEqual(1, retrievedValues.Count); Assert.Contains("Value of stringValue", rawRetrievedValues); }
public void TestGetPropertyValuesUsingProviderSpecificPropertiesWithAnonymousUser() { var profileConfig = new NameValueCollection(_profileConfig); var profileProvider = new MongoProfileProvider(); profileProvider.Initialize(DefaultProfileName, profileConfig); var userName = Guid.NewGuid().ToString(); var values = new SettingsPropertyValueCollection(); AddProviderSpecificPropertyValuesTo(values, allowAnonymous: true); profileProvider.SetPropertyValues(TestHelper.GenerateSettingsContext(userName, false), values); var properties = new SettingsPropertyCollection(); AddProviderSpecificPropertiesTo(properties, allowAnonymous: true); var retrievedValues = profileProvider .GetPropertyValues(TestHelper.GenerateSettingsContext(userName, false), properties); var rawRetrievedValues = retrievedValues .Cast<SettingsPropertyValue>() .Select(value => value.PropertyValue) .ToList(); Assert.AreEqual(2, retrievedValues.Count); Assert.Contains("Value of stringValue1", rawRetrievedValues); Assert.Contains("Value of stringValue2", rawRetrievedValues); }
public void TestGetNumberOfInactiveProfilesThatAreAuthenticated() { 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); var numberOfInactiveProfiles = profileProvider.GetNumberOfInactiveProfiles(ProfileAuthenticationOption.Authenticated, DateTime.Now.AddDays(-1)); Assert.AreEqual(20, numberOfInactiveProfiles); }
public void TestGetAllProfiles() { 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 totalRecords = 0; var profiles = profileProvider.GetAllProfiles(ProfileAuthenticationOption.All, 0, 30, out totalRecords); Assert.AreEqual(80, totalRecords); Assert.AreEqual(30, profiles.Count); foreach (ProfileInfo p in profiles) { Assert.AreEqual("user", p.UserName.Substring(0, 4)); Assert.Greater(p.Size, 0); } }
public void TestGetAllProfilesThatAreAuthenticated() { 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 totalRecords = 0; var profiles = profileProvider.GetAllProfiles(ProfileAuthenticationOption.Authenticated, 0, 30, out totalRecords); Assert.AreEqual(40, totalRecords); Assert.AreEqual(30, profiles.Count); foreach (ProfileInfo p in profiles) { Assert.AreEqual("user", p.UserName.Substring(0, 4)); // All even records are authenticated in this test. Assert.IsTrue(Convert.ToInt32(p.UserName.Substring(4)) % 2 == 0); Assert.IsFalse(p.IsAnonymous); Assert.Greater(p.Size, 0); } }
public void TestFindProfilesByUserNameThatAreAnonymous() { 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 totalRecords = 0; var profiles = profileProvider.FindProfilesByUserName(ProfileAuthenticationOption.Anonymous, @"user2\d*", 0, 2, out totalRecords); Assert.AreEqual(5, totalRecords); Assert.AreEqual(2, profiles.Count); foreach (ProfileInfo p in profiles) { Assert.IsTrue(p.UserName.StartsWith("user2")); // All even records are authenticated in this test. Assert.IsFalse(Convert.ToInt32(p.UserName.Substring(4)) % 2 == 0); Assert.IsTrue(p.IsAnonymous); Assert.Greater(p.Size, 0); } }
public void TestFindProfilesByUserName() { 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 totalRecords = 0; var profiles = profileProvider.FindProfilesByUserName(ProfileAuthenticationOption.All, @"user2\d*", 0, 2, out totalRecords); Assert.AreEqual(10, totalRecords); Assert.AreEqual(2, profiles.Count); foreach (ProfileInfo p in profiles) { Assert.IsTrue(p.UserName.StartsWith("user2")); Assert.Greater(p.Size, 0); } }
public void TestFindInactiveProfilesByUserName() { 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 totalRecords = 0; var profiles = profileProvider.FindInactiveProfilesByUserName( ProfileAuthenticationOption.All, @"user\d*(0|1)", DateTime.Now.AddDays(-1), 0, 2, out totalRecords); Assert.AreEqual(8, totalRecords); Assert.AreEqual(2, profiles.Count); foreach (ProfileInfo p in profiles) { Assert.IsTrue(p.UserName.StartsWith("user") && (p.UserName.EndsWith("0") || p.UserName.EndsWith("1"))); Assert.Greater(p.Size, 0); } }
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 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); }