diff --git a/src/Meilisearch/ISearchableJsonConverter.cs b/src/Meilisearch/ISearchableJsonConverter.cs index 3a7a2400..ebacf999 100644 --- a/src/Meilisearch/ISearchableJsonConverter.cs +++ b/src/Meilisearch/ISearchableJsonConverter.cs @@ -33,7 +33,7 @@ public override JsonConverter CreateConverter(Type typeToConvert, JsonSerializer /// The json converter for /// /// - public class ISearchableJsonConverter : JsonConverter> where T : class + public class ISearchableJsonConverter : JsonConverter> { /// public override ISearchable Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) diff --git a/tests/Meilisearch.Tests/Movie.cs b/tests/Meilisearch.Tests/Movie.cs index dc20ffed..33a1c0d4 100644 --- a/tests/Meilisearch.Tests/Movie.cs +++ b/tests/Meilisearch.Tests/Movie.cs @@ -12,6 +12,14 @@ public class Movie public string Genre { get; set; } } + public struct MovieStruct + { + public string Id { get; set; } + + public string Name { get; set; } + + public string Genre { get; set; } + } public class MovieInfo { public string Comment { get; set; } diff --git a/tests/Meilisearch.Tests/SearchTests.cs b/tests/Meilisearch.Tests/SearchTests.cs index 328b2143..97b89d90 100644 --- a/tests/Meilisearch.Tests/SearchTests.cs +++ b/tests/Meilisearch.Tests/SearchTests.cs @@ -45,6 +45,28 @@ public async Task BasicSearch() movies.Hits.ElementAt(1).Name.Should().NotBeEmpty(); } + [Fact] + public async Task BasicSearchWithStruct() + { + var movies = await _basicIndex.SearchAsync("man"); + movies.Hits.Should().NotBeEmpty(); + movies.Hits.First().Name.Should().NotBeEmpty(); + movies.Hits.ElementAt(1).Name.Should().NotBeEmpty(); + } + + [Fact] + public async Task PaginatedSearchWithStruct() + { + var movies = await _basicIndex.SearchAsync("man", new SearchQuery() + { + Page = 1, + HitsPerPage = 2, + }); + movies.Hits.Should().NotBeEmpty(); + movies.Hits.First().Name.Should().NotBeEmpty(); + movies.Hits.ElementAt(1).Name.Should().NotBeEmpty(); + } + [Fact] public async Task BasicSearchWithNoQuery() {