using DigitalData.Core.Abstractions.Client; using DigitalData.Core.Client; using Microsoft.Extensions.DependencyInjection; namespace DigitalData.Core.Tests.Client { [TestFixture] public class BaseHttpClientServiceTests { private IServiceProvider _serviceProvider; private IBaseHttpClientService _service; [SetUp] public void SetUp() { _serviceProvider = new ServiceCollection() .AddHttpClientService("https://jsonplaceholder.typicode.com", "todos") .BuildServiceProvider(); _service = _serviceProvider.GetRequiredService(); } [Test] public async Task FetchJsonAsync_ShouldReturnJsonResponse_WithCorrectWithPath() { // Act var expectedUserId = (int) await _service.FetchAsync(path: "/1", sendWithCookie: false, saveCookie: false) .ThenAsync(res => res.Json()) .ThenAsync(todo => todo.userId); // Assert Assert.That(expectedUserId, Is.EqualTo(1), "The userId of the fetched JSON object should be 1."); } [Test] public async Task FetchJsonAsync_ShouldReturnJsonResponse_WithQueryParams() { var queryParams = new Dictionary { { "userId", "1" } }; // Act var expectedUserId = (int)await _service.FetchAsync(queryParams: queryParams, sendWithCookie: false, saveCookie: false) .ThenAsync(res => res.Json()) .ThenAsync(todo => todo.userId); // Assert Assert.That(expectedUserId, Is.EqualTo(1), "The userId of the fetched JSON object should be 1."); } } }