public void ItPersistsArgumentsInFile( string containerDirectory, string machineIp, string syslogHostIp, string syslogPort, string machineName) { var context = new InstallContext(); context.Parameters.Add("CONTAINER_DIRECTORY", containerDirectory); context.Parameters.Add("MACHINE_IP", machineIp); context.Parameters.Add("SYSLOG_HOST_IP", syslogHostIp); context.Parameters.Add("SYSLOG_PORT", syslogPort); context.Parameters.Add("MACHINE_NAME", machineName); configurationManager.Context = context; configurationManager.OnBeforeInstall(null); var acl = Directory.GetAccessControl(tempDirectory.ToString()); var accessRules = acl.GetAccessRules(true, true, typeof(SecurityIdentifier)); Assert.Equal(accessRules.Count, 1); var rule = (FileSystemAccessRule)accessRules[0]; Assert.Equal(rule.AccessControlType, AccessControlType.Allow); Assert.Equal(new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null), rule.IdentityReference); Assert.Equal(rule.FileSystemRights, FileSystemRights.FullControl); var javaScriptSerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); var parametersPath = Path.Combine(tempDirectory.ToString(), "parameters.json"); var jsonString = File.ReadAllText(parametersPath); var hash = javaScriptSerializer.Deserialize <Dictionary <string, string> >(jsonString); Assert.Equal(hash["CONTAINER_DIRECTORY"], containerDirectory); Assert.Equal(hash["MACHINE_IP"], machineIp); Assert.Equal(hash["SYSLOG_HOST_IP"], syslogHostIp); Assert.Equal(hash["SYSLOG_PORT"], syslogPort); Assert.Equal(hash["MACHINE_NAME"], machineName); }
public void ItPersistsArgumentsInFile( string consulDomain, string consulIps, Uri cfEtcdCluster, string loggregatorSharedSecret, string redundancyZone, string stack, string machineIp) { var context = new InstallContext(); var consulEncryptFile = Path.Combine(sourceDirectory.ToString(), "encrypt_key"); File.WriteAllText(consulEncryptFile, "content"); context.Parameters.Add("CONSUL_DOMAIN", consulDomain); context.Parameters.Add("CONSUL_IPS", consulIps); context.Parameters.Add("CF_ETCD_CLUSTER", cfEtcdCluster.ToString()); context.Parameters.Add("LOGGREGATOR_SHARED_SECRET", loggregatorSharedSecret); context.Parameters.Add("REDUNDANCY_ZONE", redundancyZone); context.Parameters.Add("STACK", stack); context.Parameters.Add("MACHINE_IP", machineIp); context.Parameters.Add("CONSUL_ENCRYPT_FILE", consulEncryptFile); context.Parameters.Add("REP_REQUIRE_TLS", false.ToString()); configurationManager.Context = context; configurationManager.OnBeforeInstall(null); DirectorySecurity directoryAcl = Directory.GetAccessControl(tempDirectory.ToString()); AuthorizationRuleCollection accessRules = directoryAcl.GetAccessRules(true, true, typeof(SecurityIdentifier)); Assert.Equal(accessRules.Count, 1); var rule = (FileSystemAccessRule)accessRules[0]; Assert.Equal(rule.AccessControlType, AccessControlType.Allow); Assert.Equal(new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null), rule.IdentityReference); Assert.Equal(rule.FileSystemRights, FileSystemRights.FullControl); FileSecurity fileAcl = File.GetAccessControl(Path.Combine(tempDirectory.ToString(), "encrypt_key")); accessRules = fileAcl.GetAccessRules(true, true, typeof(SecurityIdentifier)); Assert.Equal(accessRules.Count, 1); rule = (FileSystemAccessRule)accessRules[0]; Assert.Equal(rule.AccessControlType, AccessControlType.Allow); Assert.Equal(new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null), rule.IdentityReference); Assert.Equal(rule.FileSystemRights, FileSystemRights.FullControl); var javaScriptSerializer = new JavaScriptSerializer(); string parametersPath = Path.Combine(tempDirectory.ToString(), "parameters.json"); string jsonString = File.ReadAllText(parametersPath); var hash = javaScriptSerializer.Deserialize <Dictionary <string, string> >(jsonString); Assert.Equal(hash["CONSUL_DOMAIN"], consulDomain); Assert.Equal(hash["CONSUL_IPS"], consulIps); Assert.Equal(hash["CF_ETCD_CLUSTER"], cfEtcdCluster.ToString()); Assert.Equal(hash["LOGGREGATOR_SHARED_SECRET"], loggregatorSharedSecret); Assert.Equal(hash["REDUNDANCY_ZONE"], redundancyZone); Assert.Equal(hash["STACK"], stack); Assert.Equal(hash["MACHINE_IP"], machineIp); Assert.Equal(hash["CONSUL_ENCRYPT_FILE"], Path.Combine(tempDirectory.ToString(), "encrypt_key")); Assert.Equal(hash["REP_REQUIRE_TLS"], false.ToString()); }