diff --git a/src/main/java/com/meilisearch/sdk/FacetSearchRequest.java b/src/main/java/com/meilisearch/sdk/FacetSearchRequest.java index c9955586..41d851d0 100644 --- a/src/main/java/com/meilisearch/sdk/FacetSearchRequest.java +++ b/src/main/java/com/meilisearch/sdk/FacetSearchRequest.java @@ -23,6 +23,7 @@ public class FacetSearchRequest { private String q; private MatchingStrategy matchingStrategy; private String[] attributesToSearchOn; + private Boolean exhaustiveFacetCount; private String[] filter; private String[][] filterArray; @@ -68,6 +69,7 @@ public String toString() { ? null : this.matchingStrategy.toString()) .putOpt("attributesToSearchOn", this.attributesToSearchOn) + .putOpt("exhaustiveFacetCount", this.exhaustiveFacetCount) .putOpt("filter", this.filter) .putOpt("filter", this.filterArray); diff --git a/src/test/java/com/meilisearch/sdk/FacetSearchRequestTest.java b/src/test/java/com/meilisearch/sdk/FacetSearchRequestTest.java new file mode 100644 index 00000000..a61c6623 --- /dev/null +++ b/src/test/java/com/meilisearch/sdk/FacetSearchRequestTest.java @@ -0,0 +1,45 @@ +package com.meilisearch.sdk; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; + +import org.json.JSONObject; +import org.junit.jupiter.api.Test; + +class FacetSearchRequestTest { + @Test + void omitsExhaustiveFacetCountByDefault() { + JSONObject json = new JSONObject(new FacetSearchRequest("genres").toString()); + + assertThat(json.has("exhaustiveFacetCount"), is(false)); + } + + @Test + void serializesExhaustiveFacetCount() { + FacetSearchRequest request = new FacetSearchRequest("genres").setExhaustiveFacetCount(true); + + JSONObject json = new JSONObject(request.toString()); + + assertThat(json.getBoolean("exhaustiveFacetCount"), is(true)); + } + + @Test + void serializesExhaustiveFacetCountWhenFalse() { + FacetSearchRequest request = + new FacetSearchRequest("genres").setExhaustiveFacetCount(false); + + JSONObject json = new JSONObject(request.toString()); + + assertThat(json.has("exhaustiveFacetCount"), is(true)); + assertThat(json.getBoolean("exhaustiveFacetCount"), is(false)); + } + + @Test + void buildsWithExhaustiveFacetCount() { + FacetSearchRequest request = + FacetSearchRequest.builder().facetName("genres").exhaustiveFacetCount(true).build(); + + assertThat(request.getExhaustiveFacetCount(), is(equalTo(true))); + } +}