/*
* Hibernate Search, full-text search for your domain model
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.search.elasticsearch.test;
import org.hibernate.search.elasticsearch.ElasticsearchQueries;
import org.hibernate.search.exception.SearchException;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
/**
* @author Yoann Rodiere
*/
public class ElasticsearchQueriesTest {
@Rule
public ExpectedException thrown = ExpectedException.none();
/*
* Check that using the 'query' attribute with valid JSON works (does not throw an exception)
*/
@Test
public void valid() {
ElasticsearchQueries.fromJson(
"{'query':{'match_all':{}}}"
);
}
@Test
public void invalidAttribute() {
thrown.expect( SearchException.class );
thrown.expectMessage( "HSEARCH400051" );
ElasticsearchQueries.fromJson(
"{"
+ "'aggs' : {"
+ "'avg_grade' : { 'avg' : { 'field' : 'grade' } }"
+ "}"
+ "}"
);
}
@Test
public void malformatedJson() {
thrown.expect( SearchException.class );
thrown.expectMessage( "HSEARCH400052" );
ElasticsearchQueries.fromJson(
"{ 'query': }"
);
}
@Test
public void nonObjectJson() {
thrown.expect( SearchException.class );
thrown.expectMessage( "HSEARCH400052" );
ElasticsearchQueries.fromJson(
"'foo'"
);
}
}