Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,4 @@ f00f4fe6ed5e22cdd2e3f68370c2da96e6bbc8e7
f6aab9d10212756b1d71a0568c706a9df51c322d
4822581aeff072b7649c7aec56a13a95bd58c249
eb09ce06943ccb460981afaa6b5ecfd54f8f87e2
4e64347e48610b8128ca737ccdb24634a92bbe34
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@

import java.util.List;

import com.commercetools.api.models.product_search.ProductSearchFacetResult;
import com.commercetools.api.models.product_search.ProductSearchFacetResultBucket;
import com.commercetools.api.models.product_search.ProductSearchFacetResultBucketEntry;
import com.commercetools.api.models.product_search.ProductSearchFacetResultCount;
import com.commercetools.api.models.product_search.*;

import tools.jackson.core.JsonParser;
import tools.jackson.core.type.TypeReference;
Expand Down Expand Up @@ -36,6 +33,16 @@ else if (node.has("value")) {
.value(node.get("value").asLong())
.build();
}
else if (node.has("count") || node.has("min")) {
return ProductSearchFacetResultStats.builder()
.name(node.get("name").asString())
.count(node.get("count").asLong())
.max(node.get("max").asDouble())
.min(node.get("min").asDouble())
.mean(node.get("mean").asDouble())
.sum(node.get("sum").asDouble())
.build();
}
return ProductSearchFacetResult.builder().name(node.get("name").asString()).build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
import com.commercetools.api.client.ByProjectKeyRequestBuilder;
import com.commercetools.api.defaultconfig.ApiRootBuilder;
import com.commercetools.api.models.product.*;
import com.commercetools.api.models.product_search.ProductPagedSearchResponse;
import com.commercetools.api.models.product_search.ProductSearchFacetResult;
import com.commercetools.api.models.product_search.ProductSearchFacetResultStats;

import io.vrap.rmf.base.client.ApiHttpClient;
import io.vrap.rmf.base.client.ApiHttpHeaders;
Expand Down Expand Up @@ -156,4 +159,35 @@ public void testFacetResultsAccessor() {
Assertions.assertThat(((TermFacetResult) prices).getTerms().size()).isEqualTo(3);
Assertions.assertThat(((TermFacetResult) prices).getTerms().get(0).getTerm()).isEqualTo("S");
}

@Test
public void testStatsFacetResultsDeserialization() {
ProductPagedSearchResponse response = JsonUtils.fromJsonString(
stringFromResource("search_stats_facet_response.json"), ProductPagedSearchResponse.class);

ProductSearchFacetResult facet = response.getFacets().get(0);
Assertions.assertThat(facet).isInstanceOf(ProductSearchFacetResultStats.class);

ProductSearchFacetResultStats statsFacet = (ProductSearchFacetResultStats) facet;
Assertions.assertThat(statsFacet.getName()).isEqualTo("price");
Assertions.assertThat(statsFacet.getCount()).isEqualTo(42L);
Assertions.assertThat(statsFacet.getMin()).isEqualTo(1000.);
Assertions.assertThat(statsFacet.getMax()).isEqualTo(50000.);
Assertions.assertThat(statsFacet.getMean()).isEqualTo(15000.5);
Assertions.assertThat(statsFacet.getSum()).isEqualTo(1500050.);

response = JsonUtils.fromJsonString(stringFromResource("search_stats_facet_response_1.json"),
ProductPagedSearchResponse.class);

facet = response.getFacets().get(0);
Assertions.assertThat(facet).isInstanceOf(ProductSearchFacetResultStats.class);

statsFacet = (ProductSearchFacetResultStats) facet;
Assertions.assertThat(statsFacet.getName()).isEqualTo("price");
Assertions.assertThat(statsFacet.getCount()).isEqualTo(859016);
Assertions.assertThat(statsFacet.getMin()).isEqualTo(199.0);
Assertions.assertThat(statsFacet.getMax()).isEqualTo(3599900.0);
Assertions.assertThat(statsFacet.getMean()).isEqualTo(233019.64729760564);
Assertions.assertThat(statsFacet.getSum()).isEqualTo(2.00167605343E11);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"total": 1,
"offset": 0,
"limit": 10,
"facets": [
{
"name": "price",
"count": 42,
"min": 1000,
"max": 50000,
"mean": 15000.5,
"sum": 1500050
}
],
"results": []
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"total": 1,
"offset": 0,
"limit": 10,
"facets": [
{
"name": "price",
"min": 199.0,
"max": 3599900.0,
"mean": 233019.64729760564,
"sum": 2.00167605343E11,
"count": 859016
}
],
"results": []
}

Loading