/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.search; import java.util.Iterator; import java.util.List; import java.util.Map; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.search.facet.Facet; import org.elasticsearch.search.facet.Facets; import org.elasticsearch.search.facet.query.QueryFacet; import org.elasticsearch.search.facet.statistical.StatisticalFacet; import org.junit.Test; import org.mockito.Mockito; import com.google.common.collect.Lists; import static org.junit.Assert.*; public class FacetExtractorTest { @Test public void testGetStatisticalFacet() { final Facet statisticalFacet = createStatisticalFacet( "test" ); final Facets facets = createFacets( statisticalFacet ); SearchResponse response = Mockito.mock( SearchResponse.class ); Mockito.when( response.getFacets() ).thenReturn( facets ); assertNull( FacetExtractor.getStatisticalFacet( response, "nonExisting" ) ); assertNotNull( FacetExtractor.getStatisticalFacet( response, "test" ) ); } @Test(expected = IndexException.class) public void testNotStatistical() { final Facet queryFacet = createQueryFacet( "test" ); final Facets facets = createFacets( queryFacet ); SearchResponse response = Mockito.mock( SearchResponse.class ); Mockito.when( response.getFacets() ).thenReturn( facets ); final StatisticalFacet test = FacetExtractor.getStatisticalFacet( response, "test" ); } private Facets createFacets( final Facet facet ) { final Facets facets = new Facets() { @Override public List<Facet> facets() { return Lists.newArrayList( facet ); } @Override public Map<String, Facet> getFacets() { return null; } @Override public Map<String, Facet> facetsAsMap() { return null; } @Override public <T extends Facet> T facet( final Class<T> facetType, final String name ) { return null; } @Override public <T extends Facet> T facet( final String name ) { return null; } @Override public Iterator<Facet> iterator() { return null; } }; return facets; } private Facet createQueryFacet( final String name ) { Facet facet = new QueryFacet() { @Override public String getName() { return name; } @Override public long getCount() { return 0; } @Override public String getType() { return null; } }; return facet; } private Facet createStatisticalFacet( final String name ) { Facet facet = new StatisticalFacet() { @Override public long getCount() { return 10; } @Override public double getTotal() { return 20; } @Override public double getSumOfSquares() { return 30; } @Override public double getMean() { return 0; } @Override public double getMin() { return 0; } @Override public double getMax() { return 0; } @Override public double getVariance() { return 0; } @Override public double getStdDeviation() { return 0; } @Override public String getName() { return name; } @Override public String getType() { return null; } }; return facet; } }