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);
                }
            }
        }
Exemple #2
0
        /// <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);
        }