public void ShouldReplacePropertyPlaceholdersWithLiveEnvironmentValues() { ConfigFile config = new ConfigFile(configDir + "web.config.template"); ConfigPropertiesCollection liveProperties = new ConfigPropertiesCollection(); using (ConfigPropertiesReader defaultPropReader = new ConfigPropertiesReader(configDir + "app.properties")) { using (ConfigPropertiesReader livePropReader = new ConfigPropertiesReader(configDir + "app.properties.live")) { liveProperties.AddPropertiesFromReader(defaultPropReader); liveProperties.AddPropertiesFromReader(livePropReader); } } config.ReplacePropertyPlaceholdersWith(liveProperties).SaveAs("web.config"); Assert.IsTrue(File.Exists("web.config"), "web.config file is missing"); using (StreamReader reader = File.OpenText("web.config")) { string contents = reader.ReadToEnd(); Assert.That( contents.Contains( "<add name=\"Northwind\" connectionString=\"server=live;database=Northwind;integrated security=SSPI\"/>"), "missing northwind connection string"); Assert.That( contents.Contains("sqlConnectionString=\"server=live;database=AspState;integrated security=SSPI\""), "missing session state connection string"); } }
public override bool Execute() { if (!File.Exists(templateConfig)) { Log.LogError("Cannot find config template file {0}", templateConfig); return(false); } try { ConfigPropertiesCollection properties = new ConfigPropertiesCollection(); foreach (ITaskItem propertyFileItem in propertyFiles) { if (propertyFileItem.ItemSpec.Length == 0) { continue; } string propertyFile = propertyFileItem.ItemSpec; if (!File.Exists(propertyFile)) { Log.LogError("Cannot find config property file {0}", propertyFile); return(false); } using (ConfigPropertiesReader propReader = new ConfigPropertiesReader(propertyFile)) { Log.LogMessage("Adding property file {0}", propertyFileItem.ItemSpec); properties.AddPropertiesFromReader(propReader); } } if (!File.Exists(templateConfig)) { Log.LogError("Cannot find config template file {0}", templateConfig); return(false); } Log.LogMessage("Creating config file {0}", destConfig); ConfigFile config = new ConfigFile(templateConfig); config.ReplacePropertyPlaceholdersWith(properties).SaveAs(destConfig); } catch (ConfigPokeException ex) { Log.LogError(ex.Message); } catch (Exception ex) { Log.LogError(ex.Message); } return(!Log.HasLoggedErrors); }
public void Should_allow_empty_string_as_value() { var reader = MockRepository.GenerateStub <IConfigPropertiesReader>(); reader.Stub(r => r.ReadLine()).Return("KeyWithEmptyValue=").Repeat.Once(); reader.Stub(r => r.ReadLine()).Return(null); var properties = new ConfigPropertiesCollection(); properties.AddPropertiesFromReader(reader); Assert.AreEqual("", properties["KeyWithEmptyValue"]); }
private static int ProcessConfigs(string templateConfig, string destConfig, IEnumerable <string> propertyFiles) { try { ConfigPropertiesCollection properties = new ConfigPropertiesCollection(); foreach (string propertyFile in propertyFiles) { if (!File.Exists(propertyFile)) { WriteError("Cannot find the property file {0}", propertyFile); return(Failure); } using (ConfigPropertiesReader propReader = new ConfigPropertiesReader(propertyFile)) { properties.AddPropertiesFromReader(propReader); } } if (!File.Exists(templateConfig)) { WriteError("Cannot find the config template file {0}", templateConfig); return(Failure); } ConfigFile config = new ConfigFile(templateConfig); config.ReplacePropertyPlaceholdersWith(properties).SaveAs(destConfig); } catch (ConfigPokeException ex) { WriteError(ex.Message); return(Failure); } catch (Exception ex) { WriteError(ex.Message); WriteError(ex.StackTrace); return(Failure); } return(Success); }