/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.search.query; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.junit.Test; import com.google.common.collect.Lists; import com.enonic.cms.core.content.category.CategoryKey; import com.enonic.cms.core.content.contenttype.ContentTypeKey; public class AggregatedQueryTranslatorTest extends QueryTranslatorTestBase { @Test public void test_plain_query() { String expectedResult = "{\n" + " \"size\" : 0,\n" + " \"query\" : {\n" + " \"match_all\" : { }\n" + " },\n" + " \"facets\" : {\n" + " \"aggregatedQuery\" : {\n" + " \"statistical\" : {\n" + " \"field\" : \"age.number\"\n" + " }\n" + " }\n" + " }\n" + "}"; AggregatedQueryTranslator translator = new AggregatedQueryTranslator(); AggregatedQuery query = new AggregatedQuery( "age" ); final SearchSourceBuilder build = translator.build( query ); compareStringsIgnoreFormatting( expectedResult, build.toString() ); } @Test public void test_filtered_query() { String expectedResult = "{\n" + " \"size\" : 0,\n" + " \"query\" : {\n" + " \"match_all\" : { }\n" + " },\n" + " \"facets\" : {\n" + " \"aggregatedQuery\" : {\n" + " \"statistical\" : {\n" + " \"field\" : \"age.number\"\n" + " },\n" + " \"facet_filter\" : {\n" + " \"bool\" : {\n" + " \"must\" : [ {\n" + " \"terms\" : {\n" + " \"categorykey\" : [ \"1\" ]\n" + " }\n" + " }, {\n" + " \"terms\" : {\n" + " \"contenttypekey\" : [ \"1\" ]\n" + " }\n" + " } ]\n" + " }\n" + " }\n" + " }\n" + " }\n" + "}"; AggregatedQueryTranslator translator = new AggregatedQueryTranslator(); AggregatedQuery query = new AggregatedQuery( "age" ); query.setCategoryFilter( Lists.newArrayList( new CategoryKey( 1 ) ) ); query.setContentTypeFilter( Lists.newArrayList( new ContentTypeKey( 1 ) ) ); final SearchSourceBuilder build = translator.build( query ); compareStringsIgnoreFormatting( expectedResult, build.toString() ); } }