private void SetSecrets(bool fromCurrentDirectory) { var secrets = new KeyValuePair<string, string>[] { new KeyValuePair<string, string>("key1", Guid.NewGuid().ToString()), new KeyValuePair<string, string>("Facebook:AppId", Guid.NewGuid().ToString()), new KeyValuePair<string, string>(@"key-@\/.~123!#$%^&*())-+==", @"key-@\/.~123!#$%^&*())-+=="), new KeyValuePair<string, string>("key2", string.Empty) }; var projectPath = UserSecretHelper.GetTempSecretProject(); if (fromCurrentDirectory) { Directory.SetCurrentDirectory(projectPath); // Point current directory to the project.json directory. } var logger = new TestLogger(_runtimeEnv); var secretManager = new Program(_runtimeEnv) { Logger = logger }; foreach (var secret in secrets) { var parameters = fromCurrentDirectory ? new string[] { "set", secret.Key, secret.Value } : new string[] { "set", secret.Key, secret.Value, "-p", projectPath }; secretManager.Main(parameters); } Assert.Equal(4, logger.Messages.Count); foreach (var keyValue in secrets) { Assert.Contains( string.Format("Successfully saved {0} = {1} to the secret store.", keyValue.Key, keyValue.Value), logger.Messages); } logger.Messages.Clear(); var args = fromCurrentDirectory ? new string[] { "list" } : new string[] { "list", "-p", projectPath }; secretManager.Main(args); Assert.Equal(4, logger.Messages.Count); foreach (var keyValue in secrets) { Assert.Contains( string.Format("{0} = {1}", keyValue.Key, keyValue.Value), logger.Messages); } // Remove secrets. logger.Messages.Clear(); foreach (var secret in secrets) { var parameters = fromCurrentDirectory ? new string[] { "remove", secret.Key } : new string[] { "remove", secret.Key, "-p", projectPath }; secretManager.Main(parameters); } // Verify secrets are removed. logger.Messages.Clear(); args = fromCurrentDirectory ? new string[] { "list" } : new string[] { "list", "-p", projectPath }; secretManager.Main(args); Assert.Equal(1, logger.Messages.Count); Assert.Contains(Resources.Error_No_Secrets_Found, logger.Messages); UserSecretHelper.DeleteTempSecretProject(projectPath); }
public void List_Empty_Secrets_File() { var projectPath = UserSecretHelper.GetTempSecretProject(); var logger = new TestLogger(_runtimeEnv); var secretManager = new Program(_runtimeEnv) { Logger = logger }; secretManager.Main(new string[] { "list", "-p", projectPath }); Assert.Equal(1, logger.Messages.Count); Assert.Contains(Resources.Error_No_Secrets_Found, logger.Messages); }
public void SetSecret_With_Verbose_Flag() { var projectPath = UserSecretHelper.GetTempSecretProject(); var logger = new TestLogger(_runtimeEnv, debug: true); var secretManager = new Program(_runtimeEnv) { Logger = logger }; secretManager.Main(new string[] { "-v", "set", "secret1", "value1", "-p", projectPath }); Assert.Equal(3, logger.Messages.Count); Assert.Contains(string.Format("Project file path {0}.", projectPath), logger.Messages); Assert.Contains(string.Format("Secrets file path {0}.", PathHelper.GetSecretsPath(projectPath)), logger.Messages); Assert.Contains("Successfully saved secret1 = value1 to the secret store.", logger.Messages); logger.Messages.Clear(); secretManager.Main(new string[] { "-v", "list", "-p", projectPath }); Assert.Equal(3, logger.Messages.Count); Assert.Contains(string.Format("Project file path {0}.", projectPath), logger.Messages); Assert.Contains(string.Format("Secrets file path {0}.", PathHelper.GetSecretsPath(projectPath)), logger.Messages); Assert.Contains("secret1 = value1", logger.Messages); UserSecretHelper.DeleteTempSecretProject(projectPath); }
public void Remove_Non_Existing_Secret() { var projectPath = UserSecretHelper.GetTempSecretProject(); var logger = new TestLogger(_runtimeEnv); var secretManager = new Program(_runtimeEnv) { Logger = logger }; secretManager.Main(new string[] { "remove", "secret1", "-p", projectPath }); Assert.Equal(1, logger.Messages.Count); Assert.Contains("Cannot find 'secret1' in the secret store.", logger.Messages); }
public void SetSecret_Update_Existing_Secret() { var projectPath = UserSecretHelper.GetTempSecretProject(); var logger = new TestLogger(_runtimeEnv); var secretManager = new Program(_runtimeEnv) { Logger = logger }; secretManager.Main(new string[] { "set", "secret1", "value1", "-p", projectPath }); Assert.Equal(1, logger.Messages.Count); Assert.Contains("Successfully saved secret1 = value1 to the secret store.", logger.Messages); secretManager.Main(new string[] { "set", "secret1", "value2", "-p", projectPath }); Assert.Equal(2, logger.Messages.Count); Assert.Contains("Successfully saved secret1 = value2 to the secret store.", logger.Messages); logger.Messages.Clear(); secretManager.Main(new string[] { "list", "-p", projectPath }); Assert.Equal(1, logger.Messages.Count); Assert.Contains("secret1 = value2", logger.Messages); UserSecretHelper.DeleteTempSecretProject(projectPath); }