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