public void RemoveIsReflectedInNextRequestWithoutRefresh() { string otherConfigurationFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Other.config"); try { File.Copy(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, otherConfigurationFile); using (FileConfigurationSource otherSource = new FileConfigurationSource(otherConfigurationFile, false)) { DummySection otherSection = otherSource.GetSection(localSection) as DummySection; DummySection newSection = new DummySection(); newSection.Value = 13; otherSource.Add(localSection, newSection); otherSource.Remove(localSection); otherSection = otherSource.GetSection(localSection) as DummySection; Assert.IsNull(otherSection); } } finally { if (File.Exists(otherConfigurationFile)) { File.Delete(otherConfigurationFile); } } }
protected void ProtectSection(FileConfigurationSource source, string sectionName, string protectionProvider) { ConfigurationSectionCloner cloner = new ConfigurationSectionCloner(); var section = source.GetSection(sectionName); section = cloner.Clone(section); source.Remove(sectionName); source.Add(sectionName, section, protectionProvider); }
public void then_file_contains_no_clear_elements() { source.Remove(ExceptionHandlingSettings.SectionName); source.Add(ExceptionHandlingSettings.SectionName, clonedSection); string text = File.ReadAllText("temp.config"); Assert.IsTrue(text.Contains(ExceptionHandlingSettings.SectionName)); Assert.IsFalse(text.Contains("<clear/>")); }
public void RemovingSectionCausesChangeNotification() { string otherConfigurationFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Other.config"); File.Copy(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, otherConfigurationFile); try { bool otherSourceChanged = false; using (FileConfigurationSource otherSource = new FileConfigurationSource(otherConfigurationFile, true, 50)) { DummySection otherDummySection = otherSource.GetSection(localSection) as DummySection; Assert.IsTrue(otherDummySection != null); otherSource.AddSectionChangeHandler( localSection, delegate(object o, ConfigurationChangedEventArgs args) { Assert.IsNull(otherSource.GetSection(localSection)); otherSourceChanged = true; }); otherSource.Remove(localSection); Thread.Sleep(300); Assert.AreEqual(true, otherSourceChanged); } } finally { if (File.Exists(otherConfigurationFile)) { File.Delete(otherConfigurationFile); } } }
public void RemoveIsReflectedInNextRequestWithoutRefresh() { string otherConfigurationFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Other.config"); try { File.Copy(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, otherConfigurationFile); using (FileConfigurationSource otherSource = new FileConfigurationSource(otherConfigurationFile, false)) { DummySection otherSection = otherSource.GetSection(localSection) as DummySection; DummySection newSection = new DummySection(); newSection.Value = 13; otherSource.Add(localSection, newSection); otherSource.Remove(localSection); otherSection = otherSource.GetSection(localSection) as DummySection; Assert.IsNull(otherSection); } } finally { if (File.Exists(otherConfigurationFile)) { File.Delete(otherConfigurationFile); } } }
public void RemovingSectionCausesChangeNotification() { string otherConfigurationFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Other.config"); File.Copy(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, otherConfigurationFile); try { bool otherSourceChanged = false; using (FileConfigurationSource otherSource = new FileConfigurationSource(otherConfigurationFile, true, 50)) { DummySection otherDummySection = otherSource.GetSection(localSection) as DummySection; Assert.IsTrue(otherDummySection != null); otherSource.AddSectionChangeHandler( localSection, delegate(object o, ConfigurationChangedEventArgs args) { Assert.IsNull(otherSource.GetSection(localSection)); otherSourceChanged = true; }); otherSource.Remove(localSection); Thread.Sleep(300); Assert.AreEqual(true, otherSourceChanged); } } finally { if (File.Exists(otherConfigurationFile)) { File.Delete(otherConfigurationFile); } } }