Search in sources :

Example 1 with Response

use of ddf.catalog.operation.Response in project ddf by codice.

the class SolrProviderQuery method testFacetedResponse.

@Test
public void testFacetedResponse() throws Exception {
    deleteAll(provider);
    List<Metacard> metacards = new ArrayList<>();
    for (int i = 0; i < 9; i++) {
        Metacard metacard = new MetacardImpl();
        metacard.setAttribute(new AttributeImpl(Metacard.DESCRIPTION, "Description " + i / 2));
        metacards.add(metacard);
    }
    create(metacards, provider);
    Filter filter = getFilterBuilder().attribute(Metacard.DESCRIPTION).is().like().fuzzyText("Description");
    Response response = provider.query(new FacetedQueryRequest(new QueryImpl(filter), ImmutableSet.of(Metacard.DESCRIPTION)));
    Serializable rawFacetResult = response.getPropertyValue(EXPERIMENTAL_FACET_RESULTS_KEY);
    assertThat(rawFacetResult, notNullValue());
    assertThat(rawFacetResult, instanceOf(List.class));
    List<FacetAttributeResult> facetResult = (List<FacetAttributeResult>) rawFacetResult;
    assertThat(facetResult.size(), is(1));
    FacetAttributeResult descriptionResult = facetResult.get(0);
    assertThat(descriptionResult.getAttributeName(), is(Metacard.DESCRIPTION));
    assertThat(descriptionResult.getFacetValues().size(), is(5));
    List<FacetValueCount> facetValueCounts = descriptionResult.getFacetValues();
    Map<String, Long> expectedResults = ImmutableMap.of("Description 0", 2L, "Description 1", 2L, "Description 2", 2L, "Description 3", 2L, "Description 4", 1L);
    facetValueCounts.forEach(fvc -> {
        Long count = expectedResults.get(fvc.getValue());
        assertThat(count, notNullValue());
        assertThat(fvc.getCount(), is(count));
    });
}
Also used : Serializable(java.io.Serializable) FacetedQueryRequest(ddf.catalog.operation.impl.FacetedQueryRequest) AttributeImpl(ddf.catalog.data.impl.AttributeImpl) ArrayList(java.util.ArrayList) FacetAttributeResult(ddf.catalog.operation.FacetAttributeResult) MetacardImpl(ddf.catalog.data.impl.MetacardImpl) FacetValueCount(ddf.catalog.operation.FacetValueCount) Response(ddf.catalog.operation.Response) SourceResponse(ddf.catalog.operation.SourceResponse) Metacard(ddf.catalog.data.Metacard) QueryImpl(ddf.catalog.operation.impl.QueryImpl) Filter(org.opengis.filter.Filter) List(java.util.List) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) SolrProviderTest(ddf.catalog.source.solr.SolrProviderTest) Test(org.junit.Test)

Aggregations

Metacard (ddf.catalog.data.Metacard)1 AttributeImpl (ddf.catalog.data.impl.AttributeImpl)1 MetacardImpl (ddf.catalog.data.impl.MetacardImpl)1 FacetAttributeResult (ddf.catalog.operation.FacetAttributeResult)1 FacetValueCount (ddf.catalog.operation.FacetValueCount)1 Response (ddf.catalog.operation.Response)1 SourceResponse (ddf.catalog.operation.SourceResponse)1 FacetedQueryRequest (ddf.catalog.operation.impl.FacetedQueryRequest)1 QueryImpl (ddf.catalog.operation.impl.QueryImpl)1 SolrProviderTest (ddf.catalog.source.solr.SolrProviderTest)1 Serializable (java.io.Serializable)1 ArrayList (java.util.ArrayList)1 LinkedList (java.util.LinkedList)1 List (java.util.List)1 Test (org.junit.Test)1 Filter (org.opengis.filter.Filter)1