/*
* 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.enonic.cms.core.content.index.ContentIndexQuery;
public class QueryTranslator_rangeTest
extends QueryTranslatorTestBase
{
@Test
public void testGreaterThan_key_int()
throws Exception
{
String expected_search_result = "{\n" +
" \"from\" : 0,\n" +
" \"size\" : " + ContentIndexQuery.DEFAULT_COUNT + ",\n" +
" \"query\" : {\n" +
" \"filtered\" : {\n" +
" \"query\" : {\n" +
" \"range\" : {\n" +
" \"key.number\" : {\n" +
" \"from\" : 100.0,\n" +
" \"to\" : null,\n" +
" \"include_lower\" : false,\n" +
" \"include_upper\" : true\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
"}";
ContentIndexQuery query = createContentQuery( "key > 100" );
SearchSourceBuilder builder = getQueryTranslator().build( query );
compareStringsIgnoreFormatting( expected_search_result, builder.toString() );
}
@Test
public void testGreaterThan_key_double()
throws Exception
{
String expected_search_result = "{\n" +
" \"from\" : 0,\n" +
" \"size\" : " + ContentIndexQuery.DEFAULT_COUNT + ",\n" +
" \"query\" : {\n" +
" \"filtered\" : {\n" +
" \"query\" : {\n" +
" \"range\" : {\n" +
" \"key.number\" : {\n" +
" \"from\" : 100.0,\n" +
" \"to\" : null,\n" +
" \"include_lower\" : false,\n" +
" \"include_upper\" : true\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
"}";
ContentIndexQuery query = createContentQuery( "key > 100.0" );
SearchSourceBuilder builder = getQueryTranslator().build( query );
compareStringsIgnoreFormatting( expected_search_result, builder.toString() );
}
@Test
public void testGreaterThan_key_string()
throws Exception
{
String expected_search_result = "{\n" +
" \"from\" : 0,\n" +
" \"size\" : " + ContentIndexQuery.DEFAULT_COUNT + ",\n" +
" \"query\" : {\n" +
" \"filtered\" : {\n" +
" \"query\" : {\n" +
" \"range\" : {\n" +
" \"key\" : {\n" +
" \"from\" : \"100\",\n" +
" \"to\" : null,\n" +
" \"include_lower\" : false,\n" +
" \"include_upper\" : true\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
"}";
ContentIndexQuery query = createContentQuery( "key > '100'" );
SearchSourceBuilder builder = getQueryTranslator().build( query );
compareStringsIgnoreFormatting( expected_search_result, builder.toString() );
}
@Test
public void testGreaterThanEquals_key_string()
throws Exception
{
String expected_search_result = "{\n" +
" \"from\" : 0,\n" +
" \"size\" : " + ContentIndexQuery.DEFAULT_COUNT + ",\n" +
" \"query\" : {\n" +
" \"filtered\" : {\n" +
" \"query\" : {\n" +
" \"range\" : {\n" +
" \"key\" : {\n" +
" \"from\" : \"100\",\n" +
" \"to\" : null,\n" +
" \"include_lower\" : true,\n" +
" \"include_upper\" : true\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
"}";
ContentIndexQuery query = createContentQuery( "key >= '100'" );
SearchSourceBuilder builder = getQueryTranslator().build( query );
compareStringsIgnoreFormatting( expected_search_result, builder.toString() );
}
@Test
public void testLessThan_key_string()
throws Exception
{
String expected_search_result = "{\n" +
" \"from\" : 0,\n" +
" \"size\" : " + ContentIndexQuery.DEFAULT_COUNT + ",\n" +
" \"query\" : {\n" +
" \"filtered\" : {\n" +
" \"query\" : {\n" +
" \"range\" : {\n" +
" \"key\" : {\n" +
" \"from\" : null,\n" +
" \"to\" : \"100\",\n" +
" \"include_lower\" : true,\n" +
" \"include_upper\" : false\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
"}";
ContentIndexQuery query = createContentQuery( "key < '100'" );
SearchSourceBuilder builder = getQueryTranslator().build( query );
compareStringsIgnoreFormatting( expected_search_result, builder.toString() );
}
@Test
public void testLessThanEquals_key_string()
throws Exception
{
String expected_search_result = "{\n" +
" \"from\" : 0,\n" +
" \"size\" : " + ContentIndexQuery.DEFAULT_COUNT + ",\n" +
" \"query\" : {\n" +
" \"filtered\" : {\n" +
" \"query\" : {\n" +
" \"range\" : {\n" +
" \"key\" : {\n" +
" \"from\" : null,\n" +
" \"to\" : \"100\",\n" +
" \"include_lower\" : true,\n" +
" \"include_upper\" : true\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
"}";
ContentIndexQuery query = createContentQuery( "key <= '100'" );
SearchSourceBuilder builder = getQueryTranslator().build( query );
compareStringsIgnoreFormatting( expected_search_result, builder.toString() );
}
}