public void HasNoAccessToKeyVault()
        {
            var mockResponse = new Mock <Response>();
            var mockClient   = new Mock <ConfigurationClient>(TestHelpers.CreateMockEndpointString());

            mockClient.Setup(c => c.GetConfigurationSettingsAsync(It.IsAny <SettingSelector>(), It.IsAny <CancellationToken>()))
            .Returns(new MockAsyncPageable(new List <ConfigurationSetting> {
                _kv
            }));

            var mockSecretClient = new Mock <SecretClient>(MockBehavior.Strict);

            mockSecretClient.SetupGet(client => client.VaultUri).Returns(new Uri("https://keyvault-theclassics.vault.azure.net"));
            mockSecretClient.Setup(client => client.GetSecretAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <CancellationToken>()))
            .Throws(new RequestFailedException(403, "Access denied. Caller was not found on any access policy.", "AccessDenied", null));

            KeyVaultReferenceException ex = Assert.Throws <KeyVaultReferenceException>(() =>
            {
                new ConfigurationBuilder().AddAzureAppConfiguration(options =>
                {
                    options.Client = mockClient.Object;
                    options.ConfigureKeyVault(kv => kv.Register(mockSecretClient.Object));
                })
                .Build();
            });

            Assert.Equal("AccessDenied", ex.ErrorCode);
        }
        public void ServerRequestIsMadeWhenDefaultCredentialIsSet()
        {
            var mockResponse = new Mock <Response>();
            var mockClient   = new Mock <ConfigurationClient>(MockBehavior.Strict, TestHelpers.CreateMockEndpointString());

            mockClient.Setup(c => c.GetConfigurationSettingsAsync(It.IsAny <SettingSelector>(), It.IsAny <CancellationToken>()))
            .Returns(new MockAsyncPageable(new List <ConfigurationSetting> {
                _kv
            }));

            KeyVaultReferenceException ex = Assert.Throws <KeyVaultReferenceException>(() =>
            {
                new ConfigurationBuilder().AddAzureAppConfiguration(options =>
                {
                    options.Client = mockClient.Object;
                    options.ConfigureKeyVault(kv => kv.SetCredential(new DefaultAzureCredential()));
                })
                .Build();
            });

            Assert.NotNull(ex.InnerException);
        }