From e75ebe1ffbf4a22603b21eb8ce0918694b48469f Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Tue, 6 Jan 2026 11:17:19 -0500 Subject: [PATCH] test: add ApiClientBaseTests with 200 OK mapping test --- .../Services/ApiClientBaseTests.cs | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 NEW/tests/JdeScoping.Client.Tests/Services/ApiClientBaseTests.cs diff --git a/NEW/tests/JdeScoping.Client.Tests/Services/ApiClientBaseTests.cs b/NEW/tests/JdeScoping.Client.Tests/Services/ApiClientBaseTests.cs new file mode 100644 index 0000000..a0e8929 --- /dev/null +++ b/NEW/tests/JdeScoping.Client.Tests/Services/ApiClientBaseTests.cs @@ -0,0 +1,39 @@ +using System.Net; +using System.Text.Json; +using JdeScoping.Core.ApiContracts.Results; +using RichardSzalay.MockHttp; +using Shouldly; + +namespace JdeScoping.Client.Tests.Services; + +public class ApiClientBaseTests +{ + private readonly MockHttpMessageHandler _mockHttp; + private readonly TestableApiClient _client; + + public ApiClientBaseTests() + { + _mockHttp = new MockHttpMessageHandler(); + var httpClient = new HttpClient(_mockHttp) { BaseAddress = new Uri("http://localhost/") }; + _client = new TestableApiClient(httpClient); + } + + public record TestDto(int Id, string Name); + + [Fact] + public async Task GetAsync_Returns200_MapsToSuccessValue() + { + // Arrange + var expected = new TestDto(42, "Test"); + _mockHttp.When("/api/test") + .Respond("application/json", JsonSerializer.Serialize(expected)); + + // Act + var result = await _client.GetAsync("/api/test"); + + // Assert + result.IsSuccess.ShouldBeTrue(); + result.Value.Id.ShouldBe(42); + result.Value.Name.ShouldBe("Test"); + } +}