public void PassesThroughLoad()
        {
            var originalProviderMock = new Mock <Microsoft.Extensions.Configuration.IConfigurationProvider>();
            var secretInjectorMock   = new Mock <ISecretInjector>();

            var provider = new KeyVaultInjectingConfigurationProvider(originalProviderMock.Object, secretInjectorMock.Object);

            provider.Load();

            originalProviderMock.Verify(p => p.Load(), Times.Once());
            secretInjectorMock.Verify(x => x.InjectAsync(It.IsAny <string>()), Times.Never());
        }
        public void PassesThroughGetChildKeys()
        {
            var originalProviderMock = new Mock <Microsoft.Extensions.Configuration.IConfigurationProvider>();
            var secretInjectorMock   = new Mock <ISecretInjector>();

            var keys       = new string[] { "someKey" };
            var parentPath = "Section1";

            Microsoft.Extensions.Configuration.IConfigurationProvider provider = new KeyVaultInjectingConfigurationProvider(originalProviderMock.Object, secretInjectorMock.Object);
            provider.GetChildKeys(keys, parentPath);

            originalProviderMock.Verify(p => p.GetChildKeys(keys, parentPath), Times.Once());
            originalProviderMock.Verify(p => p.GetChildKeys(It.IsAny <IEnumerable <string> >(), It.IsAny <string>()), Times.Once());
            secretInjectorMock.Verify(x => x.InjectAsync(It.IsAny <string>()), Times.Never());
        }
Beispiel #3
0
        public void NotInjectsSecrets(string key)
        {
            var originalProviderMock = new Mock <Microsoft.Extensions.Configuration.IConfigurationProvider>(MockBehavior.Strict);
            var secretInjectorMock   = new Mock <ISecretInjector>();

            const string uninjectedValue = "Value=$$Secret$$";

            var originalOutValue = uninjectedValue;

            originalProviderMock.Setup(p => p.TryGet(key, out originalOutValue)).Returns(true).Verifiable();
            secretInjectorMock.Setup(i => i.InjectAsync(It.IsAny <string>()));

            var provider = new KeyVaultInjectingConfigurationProvider(originalProviderMock.Object, secretInjectorMock.Object);
            var found    = provider.TryGet(key, out string value);

            Assert.True(found);
            Assert.Equal(uninjectedValue, value);

            originalProviderMock.Verify(p => p.TryGet(key, out originalOutValue), Times.Once());
            secretInjectorMock.Verify(i => i.InjectAsync(It.IsAny <string>()), Times.Never);
        }