public async Task ProbeBeAvailableWhenInitial429ReturnedFromManagedIdentityServiceAsync() { var handler = new MockManagedIdentityHttpMessageHandler(); handler.Responders.Add(new Responder { Matcher = (req, state) => { var tokenEndpoint = Constants.ManagedIdentityTokenEndpoint; var apiVersion = Constants.ManagedIdentityVMApiVersion; return(req.RequestUri.ToString() == tokenEndpoint + "?resource=https://management.azure.com/&api-version=" + apiVersion); }, MockResponse = (req, state) => { if (state.Keys.Contains("error")) { var resp = new HttpResponseMessage(HttpStatusCode.OK) { Content = new MockJsonContent(AzureManagementVMManagedIdentityJson) }; return(resp); } else { state["error"] = true; return(new HttpResponseMessage((HttpStatusCode)429)); } } }); var client = new HttpClient(handler); var provider = new ManagedIdentityTokenProvider(httpClient: client, config: FakeConfiguration()); Assert.IsTrue(await provider.IsAvailableAsync().ConfigureAwait(false)); }
public async Task ProbeShouldNotBeAvailableWithoutManagedIdentityServiceAsync() { var probe = new ManagedIdentityTokenProvider(config: FakeConfiguration()); var st = DateTime.Now; Assert.IsFalse(await probe.IsAvailableAsync().ConfigureAwait(false)); Assert.IsTrue(DateTime.Now - st < TimeSpan.FromMilliseconds(800), "should take less than 800 milliseconds"); }
public async Task ProbeShouldNotBeAvailableWithoutManagedIdentityServiceAsync() { var probe = new ManagedIdentityTokenProvider(config: FakeConfiguration()); var st = DateTime.Now; Assert.IsFalse(await probe.IsAvailableAsync().ConfigureAwait(false)); Assert.IsTrue(DateTime.Now - st < TimeSpan.FromMilliseconds(800), "should take less than 800 milliseconds"); VisualStudio.TestTools.UnitTesting.Logging.Logger.LogMessage((DateTime.Now - st).ToString()); }
public async Task ProbeShouldBeAvailableWithAppServiceConfigManagedIdentityServiceAsync() { var config = FakeConfiguration(new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>(Constants.ManagedIdentityEndpointEnvName, "http://127.0.0.1/foo"), new KeyValuePair <string, string>(Constants.ManagedIdentitySecretEnvName, "secret") }); var probe = new ManagedIdentityTokenProvider(config: config); Assert.IsTrue(await probe.IsAvailableAsync().ConfigureAwait(false)); }
public async Task ProbeNotBeAvailableWhen400ReturnedFromManagedIdentityServiceAsync() { var handler = new MockManagedIdentityHttpMessageHandler(); handler.Responders.Add(new Responder { Matcher = (req, state) => { var tokenEndpoint = Constants.ManagedIdentityTokenEndpoint; var apiVersion = Constants.ManagedIdentityVMApiVersion; return(req.RequestUri.ToString() == tokenEndpoint + "?resource=https://management.azure.com/&api-version=" + apiVersion); }, MockResponse = (req, state) => new HttpResponseMessage(HttpStatusCode.BadRequest) }); var client = new HttpClient(handler); var provider = new ManagedIdentityTokenProvider(httpClient: client, config: FakeConfiguration()); Assert.IsFalse(await provider.IsAvailableAsync().ConfigureAwait(false)); }