Example #1
0
        public void SecretCacheRefreshTest()
        {
            String testSecretName = Setup(TestType.SecretString);

            cache = new SecretsManagerCache(TestBase.Client);
            String originalSecretString = cache.GetSecretString(testSecretName).Result;

            TestBase.Client.UpdateSecretAsync(new UpdateSecretRequest {
                SecretId = testSecretName, SecretString = System.Guid.NewGuid().ToString()
            });

            Assert.Equal(originalSecretString, cache.GetSecretString(testSecretName).Result);
            Assert.True(cache.RefreshNowAsync(testSecretName).Result);
            Assert.NotEqual(originalSecretString, cache.GetSecretString(testSecretName).Result);
        }
        public void RefreshNowFailedTest()
        {
            Mock <IAmazonSecretsManager> secretsManager = new Mock <IAmazonSecretsManager>(MockBehavior.Strict);

            secretsManager.SetupSequence(i => i.GetSecretValueAsync(It.Is <GetSecretValueRequest>(j => j.SecretId == secretStringResponse1.Name), default(CancellationToken)))
            .ReturnsAsync(secretStringResponse1)
            .ThrowsAsync(new AmazonSecretsManagerException("This should not be called"));
            secretsManager.SetupSequence(i => i.DescribeSecretAsync(It.Is <DescribeSecretRequest>(j => j.SecretId == secretStringResponse1.Name), default(CancellationToken)))
            .ReturnsAsync(describeSecretResponse1)
            .ThrowsAsync(new AmazonServiceException("Caught exception"));

            SecretsManagerCache cache = new SecretsManagerCache(secretsManager.Object);
            String first   = cache.GetSecretString(secretStringResponse1.Name).Result;
            bool   success = cache.RefreshNowAsync(secretStringResponse1.Name).Result;
            String second  = cache.GetSecretString(secretStringResponse2.Name).Result;

            Assert.False(success);
            Assert.Equal(first, second);
        }
        public void BinarySecretRefreshNowTest()
        {
            Mock <IAmazonSecretsManager> secretsManager = new Mock <IAmazonSecretsManager>(MockBehavior.Strict);

            secretsManager.SetupSequence(i => i.GetSecretValueAsync(It.Is <GetSecretValueRequest>(j => j.SecretId == binaryResponse1.Name), default(CancellationToken)))
            .ReturnsAsync(binaryResponse1)
            .ReturnsAsync(binaryResponse2)
            .ThrowsAsync(new AmazonSecretsManagerException("This should not be called"));
            secretsManager.SetupSequence(i => i.DescribeSecretAsync(It.Is <DescribeSecretRequest>(j => j.SecretId == binaryResponse1.Name), default(CancellationToken)))
            .ReturnsAsync(describeSecretResponse1)
            .ReturnsAsync(describeSecretResponse2)
            .ThrowsAsync(new AmazonSecretsManagerException("This should not be called"));

            SecretsManagerCache cache = new SecretsManagerCache(secretsManager.Object);

            byte[] first   = cache.GetSecretBinary(binaryResponse1.Name).Result;
            bool   success = cache.RefreshNowAsync(binaryResponse1.Name).Result;

            byte[] second = cache.GetSecretBinary(binaryResponse1.Name).Result;
            Assert.True(success);
            Assert.NotEqual(first, second);
        }