Ejemplo n.º 1
0
        public async Task Execute()
        {
            // non fluent
            var result = await _fluentHttpClient.Post <LoginResponse>("/api/auth/login", new
            {
                username = "******",
                password = "******"
            });

            // fluent
            LoginResponse fluentResult = await _fluentHttpClient.CreateRequest("/api/auth/login")
                                         .AsPost()
                                         .WithBody(new
            {
                username = "******",
                password = "******"
            })
                                         .Return <LoginResponse>();

            Check.That(result).IsNotNull();
            Check.That(result.AccessToken).IsNotNull();

            _sessionState.Set("auth:token", result.AccessToken);

            _logger.LogInformation("[{service}] complete", nameof(Auth_LoginTest));
        }
Ejemplo n.º 2
0
 public Task <Hero> PostAsMessagePack()
 {
     return(_messagePackHttpClient.CreateRequest("/api/msgpack")
            .AsPost()
            .WithBody(new Hero
     {
         Key = "valeera",
         Name = "Valeera",
         Title = "Shadow of the Uncrowned"
     })
            .Return <Hero>());
 }
Ejemplo n.º 3
0
 public Task <Hero> PostAsJson()
 {
     return(_jsonHttpClient.CreateRequest("/api/json")
            .AsPost()
            .WithBody(new Hero
     {
         Key = "valeera",
         Name = "Valeera",
         Title = "Shadow of the Uncrowned"
     })
            .Return <Hero>());
 }
Ejemplo n.º 4
0
        public async Task Execute()
        {
            var result = await _fluentHttpClient.Get <TermsAndConditionsResponse>("/api/profile/terms-and-conditions/latest");

            var response = await _fluentHttpClient.CreateRequest("/api/profile/terms-and-conditions/latest")
                           .AsGet()
                           .ReturnAsResponse <TermsAndConditionsResponse>();

            response.EnsureSuccessStatusCode();

            var timeTaken = response.GetTimeTaken();

            Check.That(timeTaken).IsLessThan(TimeSpan.FromMilliseconds(250));
            Check.That(result).IsNotNull();
            Check.That(result.Id).IsStrictlyGreaterThan(0);

            _logger.LogInformation("[{service}] complete", nameof(Common_TermsAndConditionsTest));
        }
 /// <summary>
 /// Creates a request for GraphQL.
 /// </summary>
 /// <returns></returns>
 public static FluentHttpRequestBuilder CreateGqlRequest(this IFluentHttpClient fluentHttpClient, GqlQuery query)
 => fluentHttpClient.CreateRequest().AsGql(query);
 /// <summary>
 /// Create and send a HTTP DELETE request and return content.
 /// </summary>
 /// <typeparam name="T">Type to deserialize content to.</typeparam>
 /// <param name="client">HTTP client instance</param>
 /// <param name="uri">Request resource uri to send.</param>
 /// <param name="data">Payload data content to send.</param>
 /// <param name="contentType">(Optional) content type to use when sending data.</param>
 /// <returns>Returns task with the result data.</returns>
 public static Task <T> Delete <T>(this IFluentHttpClient client, string?uri, object data, MediaTypeHeaderValue?contentType = null)
 => client.CreateRequest(uri)
 .AsDelete()
 .WithSuccessStatus()
 .WithBody(data, contentType)
 .Return <T>();
 /// <summary>
 /// Create and send a HTTP GET request and return content.
 /// </summary>
 /// <typeparam name="T">Type to deserialize content to.</typeparam>
 /// <param name="client">HTTP client instance.</param>
 /// <param name="uri">Request resource uri to send.</param>
 /// <returns>Returns task with the result data.</returns>
 public static Task <T> Get <T>(this IFluentHttpClient client, string?uri) => client.CreateRequest(uri)
 .AsGet()
 .WithSuccessStatus()
 .Return <T>();
 /// <summary>
 /// Create and send a HTTP PATCH request and return content.
 /// </summary>
 /// <typeparam name="T">Type to deserialize content to.</typeparam>
 /// <param name="client">HTTP client instance</param>
 /// <param name="uri">Request resource uri to send.</param>
 /// <param name="data">Payload data content to send.</param>
 /// <param name="contentType">(Optional) content type to use when sending data.</param>
 /// <returns>Returns task with the result data.</returns>
 public static Task <T> Patch <T>(this IFluentHttpClient client, string uri, object data, MediaTypeHeaderValue contentType = null)
 => client.CreateRequest(uri)
 .AsPatch()
 .WithBody(data, contentType)
 .Return <T>();
 /// <summary>
 /// Creates a request for GraphQL.
 /// </summary>
 /// <returns></returns>
 public static FluentHttpRequestBuilder CreateGqlRequest(this IFluentHttpClient fluentHttpClient, GqlRequest request)
 => fluentHttpClient.CreateRequest().AsGql(request);
 /// <summary>
 /// Creates a request for GraphQL.
 /// </summary>
 /// <returns>Returns request builder for chaining.</returns>
 public static FluentHttpRequestBuilder CreateGqlRequest(this IFluentHttpClient fluentHttpClient, string query, string?operationName = null)
 => fluentHttpClient.CreateRequest().AsGql(query, operationName);