/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.search.facet.builder;
import org.elasticsearch.search.facet.range.RangeFacetBuilder;
import org.junit.Test;
import com.enonic.cms.core.search.facet.AbstractElasticsearchFacetTestBase;
import com.enonic.cms.core.search.facet.model.FacetRange;
import com.enonic.cms.core.search.facet.model.RangeFacetModel;
import static org.junit.Assert.*;
public class ElasticsearchRangeFacetBuilderTest
extends AbstractElasticsearchFacetTestBase
{
@Test
public void field()
throws Exception
{
ElasticsearchRangeFacetBuilder facetBuilder = new ElasticsearchRangeFacetBuilder();
String expectedJson =
"{\"rangeFacet\":{\"range\":{\"field\":\"mydatefield.number\",\"ranges\":[{\"from\":\"0.0\",\"to\":\"9.0\"},{\"from\":\"10.0\",\"to\":\"19.0\"},{\"from\":\"20.0\",\"to\":\"29.0\"}]}}}";
RangeFacetModel model = new RangeFacetModel();
model.setName( "rangeFacet" );
model.setIndex( "myDateField" );
model.setCount( 10 );
model.addFacetRange( new FacetRange( "0", "9" ) );
model.addFacetRange( new FacetRange( "10", "19" ) );
model.addFacetRange( new FacetRange( "20", "29" ) );
final RangeFacetBuilder build = facetBuilder.build( model );
final String json = getJson( build );
assertEquals( expectedJson, json );
}
@Test
public void key_value_field()
throws Exception
{
ElasticsearchRangeFacetBuilder facetBuilder = new ElasticsearchRangeFacetBuilder();
String expectedJson =
"{\"rangeFacet\":{\"range\":{\"key_field\":\"keyfield.number\",\"value_field\":\"valuefield.number\",\"ranges\":[{\"from\":\"0.0\",\"to\":\"9.0\"},{\"from\":\"10.0\",\"to\":\"19.0\"},{\"from\":\"20.0\",\"to\":\"29.0\"}]}}}";
RangeFacetModel model = new RangeFacetModel();
model.setName( "rangeFacet" );
model.setIndex( "keyField" );
model.setValueIndex( "valueField" );
model.setCount( 10 );
model.addFacetRange( new FacetRange( "0", "9" ) );
model.addFacetRange( new FacetRange( "10", "19" ) );
model.addFacetRange( new FacetRange( "20", "29" ) );
final RangeFacetBuilder build = facetBuilder.build( model );
final String json = getJson( build );
assertEquals( expectedJson, json );
}
}