/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.search.facet.builder;
import org.elasticsearch.search.facet.histogram.HistogramFacetBuilder;
import org.junit.Test;
import com.enonic.cms.core.search.facet.AbstractElasticsearchFacetTestBase;
import com.enonic.cms.core.search.facet.model.HistogramFacetModel;
import static org.junit.Assert.*;
public class ElasticsearchHistogramFacetBuilderTest
extends AbstractElasticsearchFacetTestBase
{
@Test
public void field()
throws Exception
{
ElasticsearchHistogramFacetBuilder facetBuilder = new ElasticsearchHistogramFacetBuilder();
String expectedJson = "{\"myHistogramFacet\":{\"histogram\":{\"field\":\"myfield.number\",\"interval\":100}}}";
HistogramFacetModel model = new HistogramFacetModel();
model.setName( "myHistogramFacet" );
model.setIndex( "myField" );
model.setCount( 10 );
model.setInterval( 100L );
final HistogramFacetBuilder histogramFacetBuilder = facetBuilder.build( model );
final String json = getJson( histogramFacetBuilder );
assertEquals( expectedJson, json );
}
@Test
public void key_valuefield()
throws Exception
{
ElasticsearchHistogramFacetBuilder facetBuilder = new ElasticsearchHistogramFacetBuilder();
String expectedJson =
"{\"myHistogramFacet\":{\"histogram\":{\"key_field\":\"data_mykeyfield.number\",\"value_field\":\"data_myvaluefield.number\",\"interval\":100}}}";
HistogramFacetModel model = new HistogramFacetModel();
model.setName( "myHistogramFacet" );
model.setCount( 10 );
model.setInterval( 100L );
model.setIndex( "data/myKeyField" );
model.setValueIndex( "data/myValueField" );
final HistogramFacetBuilder histogramFacetBuilder = facetBuilder.build( model );
final String json = getJson( histogramFacetBuilder );
assertEquals( expectedJson, json );
}
}