test: add TestableApiClient helper for ApiClientBase unit tests

This commit is contained in:
Joseph Doherty
2026-01-06 11:15:10 -05:00
parent a8f79c26b2
commit 626b7a63f2
@@ -0,0 +1,30 @@
using JdeScoping.Client.Services;
using JdeScoping.Core.ApiContracts.Results;
namespace JdeScoping.Client.Tests.Services;
/// <summary>
/// Test wrapper to expose protected ApiClientBase methods for unit testing.
/// </summary>
public class TestableApiClient : ApiClientBase
{
public TestableApiClient(HttpClient httpClient) : base(httpClient) { }
public new Task<ApiResult<T>> GetAsync<T>(string route, CancellationToken ct = default)
=> base.GetAsync<T>(route, ct);
public new Task<ApiResult<T>> PostAsync<T, TBody>(string route, TBody body, CancellationToken ct = default)
=> base.PostAsync<T, TBody>(route, body, ct);
public new Task<ApiResult<T>> PostAsync<T>(string route, CancellationToken ct = default)
=> base.PostAsync<T>(route, ct);
public new Task<ApiResult<byte[]>> GetBytesAsync(string route, CancellationToken ct = default)
=> base.GetBytesAsync(route, ct);
public new Task<ApiResult<byte[]>> PostForBytesAsync<TBody>(string route, TBody body, CancellationToken ct = default)
=> base.PostForBytesAsync<TBody>(route, body, ct);
public new Task<ApiResult<T>> PostMultipartAsync<T>(string route, Stream fileStream, string fileName, CancellationToken ct = default)
=> base.PostMultipartAsync<T>(route, fileStream, fileName, ct);
}