public void CanDeserializeSerializedConfiguration()
        {
            CacheManagerSettings settings = new CacheManagerSettings();

            IsolatedStorageCacheStorageData data1 = new IsolatedStorageCacheStorageData(name1, encryption1, partition1);
            settings.BackingStores.Add(data1);

            // needed to save configuration
            settings.CacheManagers.Add(new CacheManagerData("foo", 0, 0, 0, "storage"));

            IDictionary<string, ConfigurationSection> sections = new Dictionary<string, ConfigurationSection>();
            sections[CacheManagerSettings.SectionName] = settings;
            IConfigurationSource configurationSource
                = ConfigurationTestHelper.SaveSectionsInFileAndReturnConfigurationSource(sections);

            CacheManagerSettings roSettigs = (CacheManagerSettings)configurationSource.GetSection(CacheManagerSettings.SectionName);

            Assert.IsNotNull(roSettigs);
            Assert.AreEqual(1, roSettigs.BackingStores.Count);

            Assert.IsNotNull(roSettigs.BackingStores.Get(name1));
            Assert.AreSame(typeof(IsolatedStorageCacheStorageData), roSettigs.BackingStores.Get(name1).GetType());
            Assert.AreEqual(name1, roSettigs.BackingStores.Get(name1).Name);
            Assert.AreEqual(encryption1, ((IsolatedStorageCacheStorageData)roSettigs.BackingStores.Get(name1)).StorageEncryption);
            Assert.AreEqual(partition1, ((IsolatedStorageCacheStorageData)roSettigs.BackingStores.Get(name1)).PartitionName);
        }
Example #2
0
 public void SetUp()
 {
     provider            = new IsolatedStorageCacheStorageDataManageabilityProvider();
     machineKey          = new MockRegistryKey(true);
     userKey             = new MockRegistryKey(true);
     configurationObject = new IsolatedStorageCacheStorageData();
 }
        /// <summary>
        /// Initialize a new instance of the<see cref="IsolatedStorageCacheStorageNode"/> class with a <see cref="IsolatedStorageCacheStorageData"/> configuration object.
        /// </summary>
        /// <param name="isolatedStorageCacheStorageData">A <see cref="IsolatedStorageCacheStorageData"/> configuration object.</param>
        public IsolatedStorageCacheStorageNode(IsolatedStorageCacheStorageData isolatedStorageCacheStorageData)
        {
            if (isolatedStorageCacheStorageData == null) throw new ArgumentNullException("isolatedStorageCacheStorageData");

            Rename(isolatedStorageCacheStorageData.Name);
            this.partitionName = isolatedStorageCacheStorageData.PartitionName;
        }
        public void CanDeserializeSerializedConfiguration()
        {
            CacheManagerSettings settings = new CacheManagerSettings();

            IsolatedStorageCacheStorageData data1 = new IsolatedStorageCacheStorageData(name1, encryption1, partition1);

            settings.BackingStores.Add(data1);

            // needed to save configuration
            settings.CacheManagers.Add(new CacheManagerData("foo", 0, 0, 0, "storage"));

            IDictionary <string, ConfigurationSection> sections = new Dictionary <string, ConfigurationSection>();

            sections[CacheManagerSettings.SectionName] = settings;
            IConfigurationSource configurationSource
                = ConfigurationTestHelper.SaveSectionsInFileAndReturnConfigurationSource(sections);

            CacheManagerSettings roSettigs = (CacheManagerSettings)configurationSource.GetSection(CacheManagerSettings.SectionName);

            Assert.IsNotNull(roSettigs);
            Assert.AreEqual(1, roSettigs.BackingStores.Count);

            Assert.IsNotNull(roSettigs.BackingStores.Get(name1));
            Assert.AreSame(typeof(IsolatedStorageCacheStorageData), roSettigs.BackingStores.Get(name1).GetType());
            Assert.AreEqual(name1, roSettigs.BackingStores.Get(name1).Name);
            Assert.AreEqual(encryption1, ((IsolatedStorageCacheStorageData)roSettigs.BackingStores.Get(name1)).StorageEncryption);
            Assert.AreEqual(partition1, ((IsolatedStorageCacheStorageData)roSettigs.BackingStores.Get(name1)).PartitionName);
        }
 public void SetUp()
 {
     provider = new IsolatedStorageCacheStorageDataManageabilityProvider();
     machineKey = new MockRegistryKey(true);
     userKey = new MockRegistryKey(true);
     configurationObject = new IsolatedStorageCacheStorageData();
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="IsolatedStorageBackingStore"/> class given the configuration data
        /// </summary>
        /// <param name="configurationView">An <see cref="CachingConfigurationView"></see> object</param>
        public override void Initialize(ConfigurationView configurationView)
        {
            ArgumentValidation.CheckForNullReference(configurationView, "configurationView");
            ArgumentValidation.CheckExpectedType(configurationView, typeof(CachingConfigurationView));

            CachingConfigurationView        cachingConfigurationView  = (CachingConfigurationView)configurationView;
            IsolatedStorageCacheStorageData isoStoreConfigurationData = (IsolatedStorageCacheStorageData)cachingConfigurationView.GetCacheStorageDataForCacheManager(CurrentCacheManager);

            if (isoStoreConfigurationData.PartitionName == null)
            {
                throw new ConfigurationException(SR.IsolatedStoreAreaNameNullException(isoStoreConfigurationData.Name));
            }

            if (isoStoreConfigurationData.PartitionName.Length == 0)
            {
                throw new ConfigurationException(SR.IsolatedStoreAreaNameEmptyException(isoStoreConfigurationData.Name));
            }

            this.storageAreaName = isoStoreConfigurationData.PartitionName;

            if (isoStoreConfigurationData.StorageEncryption != null)
            {
                StorageEncryptionFactory encryptionFactory = new StorageEncryptionFactory(cachingConfigurationView.ConfigurationContext);
                this.encryptionProvider = encryptionFactory.CreateSymmetricProvider(CurrentCacheManager);
            }

            Initialize();
        }
Example #7
0
 public void SetUp()
 {
     provider            = new ConfigurationElementManageabilityProviderWrapper(new IsolatedStorageCacheStorageDataManageabilityProvider());
     machineKey          = new MockRegistryKey(true);
     userKey             = new MockRegistryKey(true);
     wmiSettings         = new List <ConfigurationSetting>();
     configurationObject = new IsolatedStorageCacheStorageData();
 }
 public static void GenerateWmiObjects(IsolatedStorageCacheStorageData configurationObject,
                                       ICollection <ConfigurationSetting> wmiSettings)
 {
     wmiSettings.Add(
         new IsolatedStorageCacheStorageSetting(configurationObject.Name,
                                                configurationObject.PartitionName,
                                                configurationObject.StorageEncryption));
 }
Example #9
0
        public void ManageabilityProviderGeneratesProperAdmContent()
        {
            DictionaryConfigurationSource configurationSource = new DictionaryConfigurationSource();

            configurationSource.Add(CacheManagerSettings.SectionName, section);

            IsolatedStorageCacheStorageData storage1, storage2;
            CacheManagerData manager1, manager2;
            StorageEncryptionProviderData encryption1;

            section.BackingStores.Add(storage1          = new IsolatedStorageCacheStorageData("storage1", "encryption1", "partition1"));
            section.CacheManagers.Add(manager1          = new CacheManagerData("manager1", 100, 200, 300, "storage1"));
            section.EncryptionProviders.Add(encryption1 = new StorageEncryptionProviderData("encryption1", typeof(object)));
            section.BackingStores.Add(storage2          = new IsolatedStorageCacheStorageData("storage2", "", "partition2"));
            section.CacheManagers.Add(manager2          = new CacheManagerData("manager2", 100, 200, 300, "storage2"));

            MockConfigurationElementManageabilityProvider subProvider = new MockConfigurationElementManageabilityProvider();
            Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders
                = new Dictionary <Type, ConfigurationElementManageabilityProvider>();

            subProviders.Add(typeof(IsolatedStorageCacheStorageData), subProvider);
            subProviders.Add(typeof(StorageEncryptionProviderData), subProvider);
            provider = new ConfigurationSectionManageabilityProviderWrapper(new CacheManagerSettingsManageabilityProvider(subProviders));

            MockAdmContentBuilder contentBuilder = new MockAdmContentBuilder();

            provider.InvokeAddAdministrativeTemplateDirectives(contentBuilder, section, configurationSource, "TestApp");

            Assert.AreEqual(3, subProvider.configurationObjects.Count);
            Assert.AreSame(storage1, subProvider.configurationObjects[0]);
            Assert.AreSame(encryption1, subProvider.configurationObjects[1]);
            Assert.AreSame(storage2, subProvider.configurationObjects[2]);
            MockAdmContent            content = contentBuilder.GetMockContent();
            IEnumerator <AdmCategory> categoriesEnumerator = content.Categories.GetEnumerator();

            Assert.IsTrue(categoriesEnumerator.MoveNext());
            Assert.AreEqual(Resources.CachingSectionCategoryName, categoriesEnumerator.Current.Name);
            IEnumerator <AdmCategory> subCategoriesEnumerator = categoriesEnumerator.Current.Categories.GetEnumerator();

            Assert.IsTrue(subCategoriesEnumerator.MoveNext());
            Assert.AreEqual(Resources.CacheManagersCategoryName, subCategoriesEnumerator.Current.Name);
            IEnumerator <AdmPolicy> cacheManagerPoliciesEnumerator = subCategoriesEnumerator.Current.Policies.GetEnumerator();

            Assert.IsTrue(cacheManagerPoliciesEnumerator.MoveNext());
            Assert.AreEqual(String.Format(Resources.CacheManagerPolicyNameTemplate, manager1.Name), cacheManagerPoliciesEnumerator.Current.Name);
            Assert.IsTrue(cacheManagerPoliciesEnumerator.MoveNext());
            Assert.AreEqual(String.Format(Resources.CacheManagerPolicyNameTemplate, manager2.Name), cacheManagerPoliciesEnumerator.Current.Name);
            Assert.IsFalse(cacheManagerPoliciesEnumerator.MoveNext());
            Assert.IsFalse(subCategoriesEnumerator.MoveNext());
            IEnumerator <AdmPolicy> sectionPoliciesEnumerator = categoriesEnumerator.Current.Policies.GetEnumerator();

            Assert.IsTrue(sectionPoliciesEnumerator.MoveNext());
            Assert.AreEqual(Resources.CacheManagerSettingsPolicyName, sectionPoliciesEnumerator.Current.Name);
            Assert.IsFalse(sectionPoliciesEnumerator.MoveNext());
            Assert.IsFalse(categoriesEnumerator.MoveNext());
        }
Example #10
0
        /// <summary>
        /// Initialize a new instance of the<see cref="IsolatedStorageCacheStorageNode"/> class with a <see cref="IsolatedStorageCacheStorageData"/> configuration object.
        /// </summary>
        /// <param name="isolatedStorageCacheStorageData">A <see cref="IsolatedStorageCacheStorageData"/> configuration object.</param>
        public IsolatedStorageCacheStorageNode(IsolatedStorageCacheStorageData isolatedStorageCacheStorageData)
        {
            if (isolatedStorageCacheStorageData == null)
            {
                throw new ArgumentNullException("isolatedStorageCacheStorageData");
            }

            Rename(isolatedStorageCacheStorageData.Name);
            this.partitionName = isolatedStorageCacheStorageData.PartitionName;
        }
        public void DataTest()
        {
            string isolatedStorageAreaName = "testStorageAreaName";

            IsolatedStorageCacheStorageData data = new IsolatedStorageCacheStorageData();
            data.PartitionName = isolatedStorageAreaName;

            IsolatedStorageCacheStorageNode node = new IsolatedStorageCacheStorageNode(data);
            Assert.AreEqual(isolatedStorageAreaName, node.PartitionName);
        }
            public StoreInIsolatedStorageBuilder(ICachingConfigurationCacheManager context, string backingStoreName)
                : base(context)
            {
                isolatedStorageData = new IsolatedStorageCacheStorageData
                {
                    Name = backingStoreName
                };

                base.AddBackingStoreToCachingConfigurationAndCurrentCacheManager(isolatedStorageData);
            }
Example #13
0
        public void DataTest()
        {
            string isolatedStorageAreaName = "testStorageAreaName";

            IsolatedStorageCacheStorageData data = new IsolatedStorageCacheStorageData();

            data.PartitionName = isolatedStorageAreaName;

            IsolatedStorageCacheStorageNode node = new IsolatedStorageCacheStorageNode(data);

            Assert.AreEqual(isolatedStorageAreaName, node.PartitionName);
        }
        public void CanCreateIsolatedCacheStorageWithoutEncryption()
        {
            IsolatedStorageCacheStorageData data = new IsolatedStorageCacheStorageData("name", "", "partition");

            settings.BackingStores.Add(data);

            IServiceLocator container = EnterpriseLibraryContainer.CreateDefaultContainer(configurationSource);

            IsolatedStorageBackingStore createdObject = (IsolatedStorageBackingStore)container.GetInstance <IBackingStore>("name");

            Assert.IsNotNull(createdObject);
        }
        public void EmptyIsolatedStorageAreaNameThrowsException()
        {
            IsolatedStorageCacheStorageData configData = new IsolatedStorageCacheStorageData();

            configData.Name          = "foo";
            configData.TypeName      = typeof(IsolatedStorageBackingStore).AssemblyQualifiedName;
            configData.PartitionName = "";

            IsolatedStorageBackingStore localStore = new IsolatedStorageBackingStore();

            localStore.Initialize(new TestCachingConfigurationView(configData, Context));
        }
        public void Setup()
        {
            IsolatedStorageCacheStorageData isolatedStorageData = new IsolatedStorageCacheStorageData("Isolated Storage", string.Empty, "part");
            CacheManagerData cacheManagerData = new CacheManagerData("Default Cache Manager", 10, 10, 10, isolatedStorageData.Name);

            CacheManagerSettings settings = new CacheManagerSettings();

            settings.CacheManagers.Add(cacheManagerData);
            settings.BackingStores.Add(isolatedStorageData);

            registrations = settings.GetRegistrations(null);
        }
Example #17
0
        public void NodeTest()
        {
            string isolatedStorageAreaName = "testStorageAreaName";

            IsolatedStorageCacheStorageNode node = new IsolatedStorageCacheStorageNode();

            node.PartitionName = isolatedStorageAreaName;
            Assert.AreEqual(isolatedStorageAreaName, node.PartitionName);

            IsolatedStorageCacheStorageData data = (IsolatedStorageCacheStorageData)node.CacheStorageData;

            Assert.AreEqual(isolatedStorageAreaName, data.PartitionName);
        }
        public void ConstructStorageDataFromXml()
        {
            XmlTextReader xmlReader     = new XmlTextReader(new StringReader(configurationSection));
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(IsolatedStorageCacheStorageData));
            IsolatedStorageCacheStorageData objectFromConfiguration = xmlSerializer.Deserialize(xmlReader) as IsolatedStorageCacheStorageData;

            Assert.AreEqual("inIsolatedStorage", objectFromConfiguration.Name);
            Assert.AreEqual("Foo", objectFromConfiguration.PartitionName);
            Assert.IsNotNull(Type.GetType(objectFromConfiguration.TypeName));
            object createdInstance = Activator.CreateInstance(Type.GetType(objectFromConfiguration.TypeName), null);

            Assert.IsTrue(createdInstance is IsolatedStorageBackingStore, "Should have created instance of IsolatedStorageBackingStore");
        }
Example #19
0
        void IContainerPolicyCreator.CreatePolicies(
            IPolicyList policyList,
            string instanceName,
            ConfigurationElement configurationObject,
            IConfigurationSource configurationSource)
        {
            IsolatedStorageCacheStorageData castConfigurationObject = (IsolatedStorageCacheStorageData)configurationObject;

            new PolicyBuilder <IsolatedStorageBackingStore, IsolatedStorageCacheStorageData>(
                instanceName,
                castConfigurationObject,
                c => new IsolatedStorageBackingStore(
                    c.PartitionName,
                    Resolve.OptionalReference <IStorageEncryptionProvider>(c.StorageEncryption)))
            .AddPoliciesToPolicyList(policyList);
        }
Example #20
0
        public void ThenReturnsNewlyConfiguredInstanceAfterReconfigureOfStorageEncryptionProvider()
        {
            MockStorageEncryptionProvider.Instantiated = false;

            storageEncryptionProviderData = new MockStorageEncryptionProviderData("Storage Encryption");
            cacheSettings.EncryptionProviders.Add(storageEncryptionProviderData);

            IsolatedStorageCacheStorageData isolatedStoreData = new IsolatedStorageCacheStorageData();

            isolatedStoreData.Name              = "Isolated Storage";
            isolatedStoreData.PartitionName     = "entlib";
            isolatedStoreData.StorageEncryption = storageEncryptionProviderData.Name;

            cacheSettings.BackingStores.Add(isolatedStoreData);

            cacheManagerData.CacheStorage = isolatedStoreData.Name;
            configurationSource.DoSourceChanged(new string[] { CacheManagerSettings.SectionName });

            CacheManagerFactory factory      = new CacheManagerFactory(serviceLcoator);
            ICacheManager       cacheManager = factory.Create(cacheSettings.DefaultCacheManager);

            Assert.IsTrue(MockStorageEncryptionProvider.Instantiated);
        }
        public void CanInitializeBackingStoreFromConfigurationObjects()
        {
            IsolatedStorageCacheStorageData configData = new IsolatedStorageCacheStorageData();

            configData.Name          = "foo";
            configData.TypeName      = typeof(IsolatedStorageBackingStore).AssemblyQualifiedName;
            configData.PartitionName = "Storage";

            IsolatedStorageBackingStore localStore = new IsolatedStorageBackingStore();

            localStore.Initialize(new TestCachingConfigurationView(configData, Context));

            localStore.Add(new CacheItem("key", "value", CacheItemPriority.Normal, null));
            localStore.Dispose();

            IsolatedStorageBackingStore testStore = new IsolatedStorageBackingStore("Storage");
            Hashtable loadedItems = testStore.Load();

            testStore.Flush();
            testStore.Dispose();

            Assert.AreEqual(1, loadedItems.Count, "One item should have been loaded into Storage backing store");
        }
        public void ManageabilityProviderGeneratesProperAdmContent()
        {
            DictionaryConfigurationSource configurationSource = new DictionaryConfigurationSource();
            configurationSource.Add(CacheManagerSettings.SectionName, section);

            IsolatedStorageCacheStorageData storage1, storage2;
            CacheManagerData manager1, manager2;
            StorageEncryptionProviderData encryption1;
            section.BackingStores.Add(storage1 = new IsolatedStorageCacheStorageData("storage1", "encryption1", "partition1"));
            section.CacheManagers.Add(manager1 = new CacheManagerData("manager1", 100, 200, 300, "storage1"));
            section.EncryptionProviders.Add(encryption1 = new StorageEncryptionProviderData("encryption1", typeof(object)));
            section.BackingStores.Add(storage2 = new IsolatedStorageCacheStorageData("storage2", "", "partition2"));
            section.CacheManagers.Add(manager2 = new CacheManagerData("manager2", 100, 200, 300, "storage2"));

            MockConfigurationElementManageabilityProvider subProvider = new MockConfigurationElementManageabilityProvider();
            Dictionary<Type, ConfigurationElementManageabilityProvider> subProviders
                = new Dictionary<Type, ConfigurationElementManageabilityProvider>();
            subProviders.Add(typeof(IsolatedStorageCacheStorageData), subProvider);
            subProviders.Add(typeof(StorageEncryptionProviderData), subProvider);
            provider = new CacheManagerSettingsManageabilityProvider(subProviders);

            MockAdmContentBuilder contentBuilder = new MockAdmContentBuilder();

            provider.AddAdministrativeTemplateDirectives(contentBuilder, section, configurationSource, "TestApp");

            Assert.AreEqual(3, subProvider.configurationObjects.Count);
            Assert.AreSame(storage1, subProvider.configurationObjects[0]);
            Assert.AreSame(encryption1, subProvider.configurationObjects[1]);
            Assert.AreSame(storage2, subProvider.configurationObjects[2]);
            MockAdmContent content = contentBuilder.GetMockContent();
            IEnumerator<AdmCategory> categoriesEnumerator = content.Categories.GetEnumerator();
            Assert.IsTrue(categoriesEnumerator.MoveNext());
            IEnumerator<AdmCategory> subCategoriesEnumerator = categoriesEnumerator.Current.Categories.GetEnumerator();
            Assert.IsTrue(subCategoriesEnumerator.MoveNext());
            IEnumerator<AdmPolicy> cacheManagerPoliciesEnumerator = subCategoriesEnumerator.Current.Policies.GetEnumerator();
            Assert.IsTrue(cacheManagerPoliciesEnumerator.MoveNext());
            Assert.IsTrue(cacheManagerPoliciesEnumerator.MoveNext());
            Assert.IsFalse(cacheManagerPoliciesEnumerator.MoveNext());
            Assert.IsFalse(subCategoriesEnumerator.MoveNext());
            IEnumerator<AdmPolicy> sectionPoliciesEnumerator = categoriesEnumerator.Current.Policies.GetEnumerator();
            Assert.IsTrue(sectionPoliciesEnumerator.MoveNext());
            Assert.IsFalse(sectionPoliciesEnumerator.MoveNext());
            Assert.IsFalse(categoriesEnumerator.MoveNext());
        }
 /// <summary>
 /// Creates node with specified configuration data.
 /// </summary>
 /// <param name="isolatedStorageCacheStorageData">Configuration data.</param>
 public IsolatedStorageCacheStorageNode(IsolatedStorageCacheStorageData isolatedStorageCacheStorageData)
     : base(isolatedStorageCacheStorageData)
 {
     this.isolatedStorageCacheStorageData = isolatedStorageCacheStorageData;
 }
 /// <summary>
 /// Creates node with specified configuration data.
 /// </summary>
 /// <param name="isolatedStorageCacheStorageData">Configuration data.</param>
 public IsolatedStorageCacheStorageNode(IsolatedStorageCacheStorageData isolatedStorageCacheStorageData) : base(isolatedStorageCacheStorageData)
 {
     this.isolatedStorageCacheStorageData = isolatedStorageCacheStorageData;
 }