public void Works() { var builder1 = new MicroCmsQueryBuilder <FakeContent>(); var actual1 = builder1 .Limit(5) .Offset(3) .OrderByDescending(m => m.PublishedAt) .Build(); Assert.Equal("?fields=Name%2cpublishedAt&limit=5&offset=3&order=-publishedAt", actual1); var builder2 = new MicroCmsQueryBuilder <FakeContent>(); var actual2 = builder2 .Limit(5) .Offset(3) .Order(m => m.PublishedAt) .Build(); Assert.Equal("?fields=Name%2cpublishedAt&limit=5&offset=3&order=publishedAt", actual2); var builder3 = new MicroCmsQueryBuilder <FakeContent>(); var actual3 = builder3 .ContentIdIs("slug") .Build(); Assert.Equal("slug?fields=Name%2cpublishedAt", actual3); }
public async Task GetContentAsync_ReturnsCorrectly() { const string apiUrl = "https://example.com"; const string expectedEndpoint = apiUrl + "/test?fields=Id"; const string apiKey = "https://example.com"; var mockHttp = new MockHttpMessageHandler(); mockHttp.When(HttpMethod.Get, expectedEndpoint) .WithHeaders("X-API-KEY", apiKey) .Respond("application/json", "{ \"Id\": \"hello\" }"); var queryBuilder = new MicroCmsQueryBuilder <FakeContent>() .ContentIdIs("test"); var subject = new MicroCmsClient(mockHttp.ToHttpClient(), apiUrl, apiKey); var actual = await subject.GetContentAsync(queryBuilder); mockHttp.VerifyNoOutstandingRequest(); Assert.Equal("hello", actual?.Id); }