public void CanBeBuiltFromDictionary() { var env = EnvironmentBlock.Create(new Dictionary <string, string> { { "FOO", "BAR" } }); var dict = env.ToDictionary(); Assert.Equal(1, dict.Count); Assert.Equal("BAR", dict["FOO"]); }
public void MergeOverwritesOld() { var env = EnvironmentBlock.CreateSystemDefault(); var newEnv = EnvironmentBlock.Create(new Hashtable { { "TMP", "FOOBAR" } }); var dict = env.Merge(newEnv).ToDictionary(); Assert.Equal(env.ToDictionary().Count, dict.Count); Assert.Equal("FOOBAR", dict["TMP"]); }
/// <summary> /// Returns default environment for the process. /// If credentials are specified then the default environment is the default for that user. /// Otherwise the default is to inherit from this process. /// </summary> private Dictionary <string, string> CreateDefaultProcessEnvironment(NetworkCredential credential) { EnvironmentBlock envBlock = new EnvironmentBlock(); if (credential == null) { envBlock = EnvironmentBlock.Create(Environment.GetEnvironmentVariables()); } else { using (var safeUserToken = Utils.LogonAndGetUserPrimaryToken(credential)) { envBlock = EnvironmentBlock.CreateForUser(safeUserToken.DangerousGetHandle()); } } return(envBlock.ToDictionary()); }