public async Task AccessToken_RevokeOnDisposeAsync() { ClientParameters clientParameters = null; var client = await GetTestClientAsync(cp => { clientParameters = cp; }); var accessToken = client.AccessToken; var token = accessToken.Token; if (token != "Token") { TokenIntrospectionResponse response; await using (client) { response = await accessToken.IntrospectAsync(); Assert.IsTrue(response.Active); } using (await EncompassApiClient.CreateFromAccessTokenAsync(clientParameters, token)) { response = await accessToken.IntrospectAsync(); Assert.IsNull(response); } } }
/// <summary> /// Do not dispose of this object as it is reused on tests /// </summary> /// <returns></returns> public static async Task <IEncompassApiClient> GetTestClientAsync(Action <ClientParameters> parametersInitializer = null) { var client = s_testClient; if (client == null || parametersInitializer != null) { const string testClientCredentialsFile = "C:\\EncompassApiTestClientCredentials.json"; // Never include this file in source control //if (File.Exists(testClientCredentialsFile)) //{ // TestClientCredentials credentials; // using (var fs = File.OpenRead(testClientCredentialsFile)) // { // using (var sr = new StreamReader(fs)) // { // credentials = JsonHelper.FromJson<TestClientCredentials>(sr); // } // } // var effectiveParameters = credentials.Parameters; // if (parametersInitializer != null) // { // effectiveParameters = JsonHelper.DefaultPublicSerializer.Clone(effectiveParameters); // parametersInitializer(effectiveParameters); // } // //TODO Rewrite // client = await EncompassApiClient.CreateAsync(effectiveParameters, tc => tc.FromUserCredentialsAsync(credentials.InstanceId, credentials.UserId, credentials.Password)); // Console.WriteLine("Using test client credentials file"); //} //else //{ IClientParameters parameters = new ClientParameters { ApiClientId = "ApiClientId", ApiClientSecret = "ApiClientSecret" }; client = new EncompassApiClient(parameters); //TODO Rewrite //var accessToken = client.AccessToken; //accessToken.Token = "Token"; var httpClient = client.HttpClient; httpClient.BaseAddress = new Uri("https://try.readme.io/"); var defaultRequestHeaders = httpClient.DefaultRequestHeaders; defaultRequestHeaders.Clear(); defaultRequestHeaders.Add("x-api-key", "9JsmcmHyzJuokoWeJJ8HGiRgS5GR8cSKVswz"); defaultRequestHeaders.Add("origin", string.Empty); //await parameters.TryInitializeAsync(client, client.CommonCache, CancellationToken.None); Console.WriteLine("Using Encompass Developer Connect Try It endpoint"); //} if (parametersInitializer == null) { client = Interlocked.CompareExchange(ref s_testClient, client, null) ?? client; } } return(client); }