コード例 #1
0
        public async Task VerifyCredentialsSet()
        {
            var kvClient          = new FakeKeyVaultClient();
            var secureConfigStore = new SecureConfigurationStore(kvClient);
            var portalConfig      = GetPortalConfig();
            await secureConfigStore.SetConfig(portalConfig);

            Assert.Equal("theapikey", await kvClient.GetKeyVaultSecretAsync(Guid.Empty, null, "ApplicationInsightsApiKey"));
            Assert.Equal("domainpassword", await kvClient.GetKeyVaultSecretAsync(Guid.Empty, null, "DomainJoinPassword"));
            Assert.Equal("sppassword", await kvClient.GetKeyVaultSecretAsync(Guid.Empty, null, "ServicePrincipalPassword"));
        }
        public async Task GetAsync_Without_SecureData()
        {
            var mockConsulStore = new Mock <IConfigurationStore>();

            mockConsulStore.Setup(x => x.GetAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync("test");

            var mockSensitiveDataProvider = new Mock <ISensitiveDataProvider>();

            mockSensitiveDataProvider.Setup(x => x.GetValuesAsync(It.IsAny <List <string> >(), It.IsAny <bool>())).ReturnsAsync(new Dictionary <string, string>());

            var secureConfigurationStore = new SecureConfigurationStore(mockConsulStore.Object, mockSensitiveDataProvider.Object);

            var result = await secureConfigurationStore.GetAsync("global", "test_app", "test_section", "test_key");

            Assert.Equal("test", result);
            mockConsulStore.Verify(x => x.GetAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Once);
            mockSensitiveDataProvider.Verify(x => x.GetValuesAsync(It.IsAny <List <string> >(), It.IsAny <bool>()), Times.Never);
        }
        public void Get_With_SecureData()
        {
            var mockConsulStore = new Mock <IConfigurationStore>();

            mockConsulStore.Setup(x => x.Get(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns("{\"test\":\"[#test_one#]\"}");

            var sensitiveData = new Dictionary <string, string>();

            sensitiveData.Add("test_one", "1");
            var mockSensitiveDataProvider = new Mock <ISensitiveDataProvider>();

            mockSensitiveDataProvider.Setup(x => x.GetValuesAsync(It.IsAny <List <string> >(), It.IsAny <bool>())).ReturnsAsync(sensitiveData);

            var secureConfigurationStore = new SecureConfigurationStore(mockConsulStore.Object, mockSensitiveDataProvider.Object);

            var result = secureConfigurationStore.Get("global", "test_app", "test_section", "test_key");

            Assert.Equal("{\"test\":\"1\"}", result);
            mockConsulStore.Verify(x => x.Get(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Once);
            mockSensitiveDataProvider.Verify(x => x.GetValuesAsync(It.IsAny <List <string> >(), It.IsAny <bool>()), Times.Once);
        }
        public async Task GetAllAsync_With_SecureData()
        {
            var consulConfiguration = new Dictionary <string, string>();

            consulConfiguration.Add("test", "[#test_one#]");
            var mockConsulStore = new Mock <IConfigurationStore>();

            mockConsulStore.Setup(x => x.GetAllAsync()).ReturnsAsync(consulConfiguration);

            var sensitiveData = new Dictionary <string, string>();

            sensitiveData.Add("test_one", "1");
            var mockSensitiveDataProvider = new Mock <ISensitiveDataProvider>();

            mockSensitiveDataProvider.Setup(x => x.GetValuesAsync(It.IsAny <List <string> >(), It.IsAny <bool>())).ReturnsAsync(sensitiveData);

            var secureConfigurationStore = new SecureConfigurationStore(mockConsulStore.Object, mockSensitiveDataProvider.Object);

            var result = await secureConfigurationStore.GetAllAsync();

            Assert.Equal(consulConfiguration.Count, result.Count);
            mockConsulStore.Verify(x => x.GetAllAsync(), Times.Once);
            mockSensitiveDataProvider.Verify(x => x.GetValuesAsync(It.IsAny <List <string> >(), It.IsAny <bool>()), Times.Once);
        }