/// <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 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 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 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); }