Пример #1
0
        ///<summary>
        /// Test GetKVSecret() with a successfull response form Vault API
        ///</summary>

        public async void TestSuccess_GetKVSecret()
        {
            var moqHandler = NewMoqHttpHandler(HttpStatusCode.OK);

            // Make the method call
            var      httpClient = new HttpClient(moqHandler.Object);
            VaultCom vcom       = new VaultCom("http://test.com", "vault_token", "vault_path", httpClient);
            var      callResult = await vcom.GetKVSecret("test-secret");

            // Verify returned result
            Assert.NotNull(callResult);
            Assert.Equal(expectedKVSecret, callResult);

            // Verify HttpClient.GetAsync() call
            Uri expReqUrl = new Uri("http://test.com/v1/vault_path/data/test-secret");

            moqHandler.Protected().Verify(
                "SendAsync",
                Times.Once(),
                ItExpr.Is <HttpRequestMessage>(req =>
                                               req.Method == HttpMethod.Get &&
                                               req.RequestUri == expReqUrl &&
                                               req.Headers.Contains("X-Vault-Token") &&
                                               new List <string>(req.Headers.GetValues("X-Vault-Token")).Contains("vault_token")
                                               ),
                ItExpr.IsAny <CancellationToken>()
                );
        }
Пример #2
0
        ///<summary>
        /// Read a user provided secret
        ///</summary>
        public void ReadSecret()
        {
            // Get secret name
            Console.WriteLine();
            string secretName = GetSecretName();

            // Make call to Vault API
            Dictionary <string, string> secretData = vaultCommunicator.GetKVSecret(secretName).Result;

            // Handle output
            if (secretData != null)
            {
                foreach (KeyValuePair <string, string> kv in secretData)
                {
                    Console.WriteLine($"{kv.Key} = {kv.Value}");
                }
            }
            else
            {
                Console.Error.WriteLine("Getting secret failed!");
            }

            Console.Write("\nPress any key to continue...");
            userInput.GetUserInput();
        }
Пример #3
0
        ///<summary>
        /// Test GetKVSecret() with a failure response form Vault API
        ///</summary>

        public async void TestFailure_GetKVSecret()
        {
            var moqHandler = NewMoqHttpHandler(HttpStatusCode.BadRequest);

            // Make the method call
            var      httpClient = new HttpClient(moqHandler.Object);
            VaultCom vcom       = new VaultCom("http://test.com", "vault_token", "vault_path", httpClient);
            var      callResult = await vcom.GetKVSecret("test-secret");

            // Verify returned result
            Assert.Null(callResult);
        }