public void SetClientEndpointValueTest()
        {
            List<string> TestLog = new List<string>();
               configUpdater target = new configUpdater(TestConfigFile);
               const string endpointName = "BasicHttpBinding_ICalculator";
               const string endpointAddress = "http://devapp.dfg.local/CalcService/CalculatorService.svc";
               bool actual = target.SetClientEndpointValue(endpointName, endpointAddress, TestLog.Add);
               Assert.AreEqual(true, actual);

               XmlNode node = TestConfigFile.SelectSingleNode("//client");
               XmlElement Elem = (XmlElement)node.SelectSingleNode(String.Format("//endpoint[@name='{0}']", endpointName));
               string attribute = Elem.GetAttribute("address");
               Assert.AreEqual("http://devapp.dfg.local/CalcService/CalculatorService.svc", attribute);
        }
 /// <summary>
 /// Iterates through the settings retrieved from the Installer Settings Service, and updates the selected .config file
 /// </summary>
 /// <param name="session">The session object from the installer for log file writing</param>
 /// <param name="settings">A list of settings retrieved from the Installer Settings Service</param>
 /// <param name="configUpdater">Instance of the configUpdater Class to perform the updates on the file</param>
 private static void UpdateConfigurationFile(Action<string> sessionLog, List<ApplicationConfigSettings.Setting> settings, string configPath)
 {
     foreach (ApplicationConfigSettings.Setting setting in settings)
     {
         configUpdater thisConfig = new configUpdater() { docName = Path.Combine(configPath, setting.configFile) };
         bool result = false;
         switch (setting.settingType)
         {
             case ApplicationConfigSettings.SettingType.ConnectionString:
                 result = thisConfig.SetConnectionStringValue(setting.settingKey, setting.settingValue, sessionLog);
                 if (result)
                 {
                     sessionLog(String.Format("Connection String {0} updated", setting.settingName));
                 }
                 else
                 {
                     sessionLog(String.Format("Error: Connection String {0} update failed", setting.settingName));
                 }
                 break;
             case ApplicationConfigSettings.SettingType.AppSetting:
                 result = thisConfig.SetAppSettingValue(setting.settingKey, setting.settingValue, sessionLog);
                 if (result)
                 {
                     sessionLog(String.Format("App Setting {0} updated", setting.settingName));
                 }
                 else
                 {
                     sessionLog(String.Format("Error: App Setting {0} update failed", setting.settingName));
                 }
                 break;
             case ApplicationConfigSettings.SettingType.ClientEndpoint:
                 result = thisConfig.SetClientEndpointValue(setting.settingKey, setting.settingValue, sessionLog);
                 if (result)
                 {
                     sessionLog(String.Format("Client Endpoint {0} updated", setting.settingName));
                 }
                 else
                 {
                     sessionLog(String.Format("Error: Client Endpoint {0} update failed", setting.settingName));
                 }
                 break;
             case ApplicationConfigSettings.SettingType.ServiceEndpoint:
                 result = thisConfig.SetServiceEndPointValue(setting.settingName, setting.settingKey, setting.settingValue, sessionLog);
                 if (result)
                 {
                     sessionLog(String.Format("Service Endpoint {0} updated", setting.settingName));
                 }
                 else
                 {
                     sessionLog(String.Format("Error: Service Endpoint {0} update failed", setting.settingName));
                 }
                 break;
             case ApplicationConfigSettings.SettingType.ConfigurationSetting:
                 result = thisConfig.SetCustomConfigSectionAttribute(setting.settingName, setting.settingKey, setting.settingValue, sessionLog);
                 if (result)
                 {
                     sessionLog(String.Format("Configuration Section {0} updated", setting.settingName));
                 }
                 else
                 {
                     sessionLog(String.Format("Error: Configuration Section {0} update failed", setting.settingName));
                 }
                 break;
             case ApplicationConfigSettings.SettingType.ConfigurationValue:
                 result = thisConfig.SetCustomConfigSectionValue(setting.settingName, setting.settingKey, setting.settingValue, sessionLog);
                 if (result)
                 {
                     sessionLog(String.Format("Configuration Value {0} updated", setting.settingName));
                 }
                 else
                 {
                     sessionLog(String.Format("Error: Configuration Value {0} update failed", setting.settingName));
                 }
                 break;
             case ApplicationConfigSettings.SettingType.ServiceBaseAddress:
                 result = thisConfig.SetServiceBaseAddress(setting.settingName, setting.settingKey, setting.settingValue, sessionLog);
                 if (result)
                 {
                     sessionLog(String.Format("Service Base Address {0} updated", setting.settingName));
                 }
                 else
                 {
                     sessionLog(String.Format("Error: Service Base Address {0} update failed", setting.settingName));
                 }
                 break;
             case ApplicationConfigSettings.SettingType.XMLNodeValue:
                 result = thisConfig.SetXMLNodeValue(setting.settingKey, setting.settingValue, sessionLog);
                 if (result)
                 {
                     sessionLog(String.Format("XML Node value {0} updated", setting.settingName));
                 }
                 else
                 {
                     sessionLog(String.Format("Error: XML Node value {0} update failed", setting.settingName));
                 }
                 break;
             case ApplicationConfigSettings.SettingType.DefaultProxy:
                 result = thisConfig.SetDefaultProxy(setting.settingValue, sessionLog);
                 if (result)
                 {
                     sessionLog(String.Format("Default Proxy value {0} updated", setting.settingName));
                 }
                 else
                 {
                     sessionLog(String.Format("Error: Default Proxy value {0} update failed", setting.settingName));
                 }
                 break;
             case ApplicationConfigSettings.SettingType.XMLNodeAttribute:
                 result = thisConfig.SetXMLNodeAttributeValue(setting.settingName, setting.settingKey, setting.settingValue, sessionLog);
                 if (result)
                 {
                     sessionLog(String.Format("XML Node value {0} updated", setting.settingName));
                 }
                 else
                 {
                     sessionLog(String.Format("Error: XML Node value {0} update failed", setting.settingName));
                 }
                 break;
             default:
                 sessionLog("Error: An unknown setting was found, please check the configuration database");
                 break;
         }
     }
 }