public void ReadAndWriteToEncryptedConfiguration()
        {
            const string sectionName = "MyEncryptedConfig";

            KeyAlgorithmPair keyAlgorithmPair = new KeyAlgorithmPair();

            keyAlgorithmPair.Key = new SymmetricAlgorithmKeyCreator(typeof(RijndaelManaged).AssemblyQualifiedName).GenerateKey();
            keyAlgorithmPair.AlgorithmTypeName = typeof(RijndaelManaged).AssemblyQualifiedName;

            FileKeyAlgorithmPairStorageProvider provider = new FileKeyAlgorithmPairStorageProvider();

            provider.ConfigurationName = "FileKeyAlgorithmPairStorageProviderData";

            using (ConfigurationBuilder builder = new ConfigurationBuilder())
            {
                // change wher the file is
                RuntimeConfigurationView view = new RuntimeConfigurationView(new ConfigurationContext(new NonDisposingWrapper(builder)));

                FileKeyAlgorithmPairStorageProviderData fileData = (FileKeyAlgorithmPairStorageProviderData)view.GetKeyAlgorithmPairStorageProviderData();
                fileData.Path = Path.GetTempFileName();
                provider.Initialize(view);
                provider.Save(keyAlgorithmPair);
                builder.WriteConfiguration(sectionName, data);
                MockConfigurationData myData = (MockConfigurationData)builder.ReadConfiguration(sectionName);
                Assert.AreEqual(myData.ToString(), data.ToString());
                builder.ClearSectionCache();
                myData = (MockConfigurationData)builder.ReadConfiguration(sectionName);
                Assert.AreEqual(myData.ToString(), data.ToString());
            }
        }
        private XmlNode SerializeData(MockConfigurationData data)
        {
            XmlSerializer xs    = new XmlSerializer(data.GetType());
            StringWriter  sw    = new StringWriter(CultureInfo.CurrentUICulture);
            XmlTextWriter xmlTw = new XmlTextWriter(sw);

            try
            {
                xmlTw.WriteStartElement(xmlSerializerSection);
                xmlTw.WriteAttributeString("type", data.GetType().AssemblyQualifiedName);
                xs.Serialize(xmlTw, data);
                xmlTw.WriteEndElement();
                xmlTw.Flush();
            }
            finally
            {
                xmlTw.Close();
            }
            XmlDocument doc = new XmlDocument();

            try
            {
                doc.LoadXml(sw.ToString());
            }
            finally
            {
                sw.Close();
            }
            return(doc.DocumentElement);
        }
        public void SpaceInPathConfigWriteTest()
        {
            builder.WriteConfiguration(mockConfigSection, data);
            MockConfigurationData readData = builder.ReadConfiguration(mockConfigSection) as MockConfigurationData;

            Assert.IsNotNull(readData);
            Assert.AreEqual(data.ToString(), readData.ToString());
        }
 public void StaticClearCacheTest()
 {
     using (ConfigurationBuilder builder = new ConfigurationBuilder(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile))
     {
         builder.WriteConfiguration(mockConfigSection, data);
         MockConfigurationData readData  = ConfigurationManager.GetConfiguration(mockConfigSection) as MockConfigurationData;
         MockConfigurationData readData2 = ConfigurationManager.GetConfiguration(mockConfigSection) as MockConfigurationData;
         Assert.AreSame(readData, readData2);
         ConfigurationManager.ClearSingletonSectionCache();
         readData2 = ConfigurationManager.GetConfiguration(mockConfigSection) as MockConfigurationData;
         Assert.IsFalse(Object.Equals(readData, readData2));
     }
 }
 public void ClearCacheByNameTest()
 {
     using (ConfigurationBuilder builder = new ConfigurationBuilder(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile))
     {
         builder.WriteConfiguration(mockConfigSection, data);
         MockConfigurationData readData  = builder.ReadConfiguration(mockConfigSection) as MockConfigurationData;
         MockConfigurationData readData2 = builder.ReadConfiguration(mockConfigSection) as MockConfigurationData;
         Assert.AreSame(readData, readData2);
         builder.ClearSectionCache(mockConfigSection);
         readData2 = builder.ReadConfiguration(mockConfigSection) as MockConfigurationData;
         Assert.IsFalse(Object.Equals(readData, readData2));
     }
 }
        public void ReadWriteWebConfigTest()
        {
            string configFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, webConfigFile);

            using (ConfigurationBuilder builder = new ConfigurationBuilder(configFile))
            {
                ConfigurationSettings configData = new ConfigurationSettings(mockConfigSection);
                configData.ConfigurationSections.Add(GetConfigurationSection());
                builder.WriteMetaConfiguration(configData);
                builder.WriteConfiguration(mockConfigSection, data);
                MockConfigurationData readData = builder.ReadConfiguration(mockConfigSection) as MockConfigurationData;
                Assert.IsNotNull(readData);
                Assert.AreEqual(data.ToString(), readData.ToString());
            }
        }
        public void SetUp()
        {
            builder = new ConfigurationBuilder(configFile);

            data                     = new MockConfigurationData();
            data.Color               = "Red";
            data.Size                = 5;
            data.SomeText            = "Some Text";
            eventFired               = false;
            eventString              = "";
            eventCount               = 0;
            changedNewValue          = null;
            changedOldValue          = null;
            changedSectionName       = string.Empty;
            changedConfigurationFile = string.Empty;
        }
 private XmlNode SerializeData(MockConfigurationData data)
 {
     XmlSerializer xs = new XmlSerializer(data.GetType());
     StringWriter sw = new StringWriter(CultureInfo.CurrentUICulture);
     XmlTextWriter xmlTw = new XmlTextWriter(sw);
     try
     {
         xmlTw.WriteStartElement(xmlSerializerSection);
         xmlTw.WriteAttributeString("type", data.GetType().AssemblyQualifiedName);
         xs.Serialize(xmlTw, data);
         xmlTw.WriteEndElement();
         xmlTw.Flush();
     }
     finally
     {
         xmlTw.Close();
     }
     XmlDocument doc = new XmlDocument();
     try
     {
         doc.LoadXml(sw.ToString());
     }
     finally
     {
         sw.Close();
     }
     return doc.DocumentElement;
 }
        public void SetUp()
        {
            builder = new ConfigurationBuilder(configFile);

            data = new MockConfigurationData();
            data.Color = "Red";
            data.Size = 5;
            data.SomeText = "Some Text";
            eventFired = false;
            eventString = "";
            eventCount = 0;
            changedNewValue = null;
            changedOldValue = null;
            changedSectionName = string.Empty;
            changedConfigurationFile = string.Empty;
        }