예제 #1
0
        public async Task MultipleSecretsAreReplaced(string variableText, string expectedText, string replace,
                                                     [Frozen] Mock <ISecretProviderFactory> mockFact, [Frozen] Mock <ISecretProvider> mockProv, IVaultArgs vaultArgs, SecretsMananger sut)
        {
            setVaultArgs(vaultArgs);
            mockFact.Setup(f => f.Create(It.IsAny <string>())).Returns(mockProv.Object);
            mockProv.Setup(v => v.GetSecret(It.IsAny <string>())).Returns(Task.FromResult(replace));
            var secrets = new List <SecretVariable>()
            {
                new SecretVariable("hello", variableText)
            };
            await sut.ReplaceSecrets(secrets, vaultArgs).ConfigureAwait(false);

            secrets.Single().Value.Should().Be(expectedText);
        }
예제 #2
0
        public async Task SecretsAreReplaced([Frozen] Mock <ISecretProviderFactory> mockFact, [Frozen] Mock <ISecretProvider> mockProv, IVaultArgs vaultArgs, SecretsMananger sut)
        {
            setVaultArgs(vaultArgs);
            var secretValue = "world";
            var secrets     = new List <SecretVariable>()
            {
                new SecretVariable("hello", $"#{{{secretValue}}}")
            };

            mockProv.Setup(v => v.GetSecret(secretValue)).Returns(Task.FromResult("SECRET"));
            mockFact.Setup(f => f.Create("")).Returns(mockProv.Object);
            await sut.ReplaceSecrets(secrets, vaultArgs).ConfigureAwait(false);

            secrets.Single().Value.Should().Be("SECRET");
        }
예제 #3
0
        public async Task SecretDoesNotUseFactoryVaultArgsNull([Frozen] Mock <ISecretProviderFactory> mockFact, [Frozen]  Mock <ISecretProvider> mockProv, IVaultArgs vaultArgs, SecretsMananger sut)
        {
            vaultArgs = null;
            mockFact.Setup(f => f.Create(It.IsAny <string>())).Returns(mockProv.Object);
            mockProv.Setup(v => v.GetSecret(It.IsAny <string>())).Returns(Task.FromResult(String.Empty));

            await sut.ReplaceSecrets(new List <SecretVariable>() { new SecretVariable("hello", "#{world}") }, vaultArgs).ConfigureAwait(false);

            mockProv.Verify(v => v.GetSecret(It.IsAny <string>()), Times.Never);
        }
예제 #4
0
        public async Task ThreeSecretsUsesFactoryThreeTimes([Frozen] Mock <ISecretProviderFactory> mockFact, [Frozen]  Mock <ISecretProvider> mockProv, IVaultArgs vaultArgs, SecretsMananger sut)
        {
            setVaultArgs(vaultArgs);
            mockFact.Setup(f => f.Create(It.IsAny <string>())).Returns(mockProv.Object);
            mockProv.Setup(v => v.GetSecret(It.IsAny <string>())).Returns(Task.FromResult(String.Empty));
            await sut.ReplaceSecrets(new List <SecretVariable>() { new SecretVariable("hello", "#{world} #{double} #{trouble}") }, vaultArgs).ConfigureAwait(false);

            mockProv.Verify(v => v.GetSecret(It.IsAny <string>()), Times.Exactly(3));
        }
예제 #5
0
        public async Task NonReplacedVariableIsNotMarkedSecret([Frozen] Mock <ISecretProviderFactory> mockFact, [Frozen] Mock <ISecretProvider> mockProv, IVaultArgs vaultArgs, SecretsMananger sut)
        {
            setVaultArgs(vaultArgs);
            mockProv.Setup(v => v.GetSecret(It.IsAny <string>())).Returns(Task.FromResult("SECRET"));
            mockFact.Setup(f => f.Create(It.IsAny <string>())).Returns(mockProv.Object);
            var secrets = new List <SecretVariable>()
            {
                new SecretVariable("hello", "world")
            };
            await sut.ReplaceSecrets(secrets, vaultArgs).ConfigureAwait(false);

            secrets.Single().IsSecret.Should().BeFalse();
        }