|
|
@@ -23,6 +23,7 @@ import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
|
|
|
import org.apache.lucene.index.Fields;
|
|
|
import org.apache.lucene.index.MultiFields;
|
|
|
import org.apache.lucene.index.memory.MemoryIndex;
|
|
|
+import org.apache.lucene.search.BooleanClause;
|
|
|
import org.apache.lucene.search.BooleanQuery;
|
|
|
import org.apache.lucene.search.Query;
|
|
|
import org.elasticsearch.ElasticsearchException;
|
|
|
@@ -61,6 +62,7 @@ import java.util.stream.Stream;
|
|
|
import static org.elasticsearch.index.query.QueryBuilders.moreLikeThisQuery;
|
|
|
import static org.hamcrest.Matchers.containsString;
|
|
|
import static org.hamcrest.Matchers.equalTo;
|
|
|
+import static org.hamcrest.Matchers.greaterThan;
|
|
|
import static org.hamcrest.Matchers.instanceOf;
|
|
|
|
|
|
public class MoreLikeThisQueryBuilderTests extends AbstractQueryTestCase<MoreLikeThisQueryBuilder> {
|
|
|
@@ -264,6 +266,13 @@ public class MoreLikeThisQueryBuilderTests extends AbstractQueryTestCase<MoreLik
|
|
|
protected void doAssertLuceneQuery(MoreLikeThisQueryBuilder queryBuilder, Query query, SearchContext context) throws IOException {
|
|
|
if (queryBuilder.likeItems() != null && queryBuilder.likeItems().length > 0) {
|
|
|
assertThat(query, instanceOf(BooleanQuery.class));
|
|
|
+ BooleanQuery booleanQuery = (BooleanQuery) query;
|
|
|
+ for (BooleanClause booleanClause : booleanQuery) {
|
|
|
+ if (booleanClause.getQuery() instanceof MoreLikeThisQuery) {
|
|
|
+ MoreLikeThisQuery moreLikeThisQuery = (MoreLikeThisQuery) booleanClause.getQuery();
|
|
|
+ assertThat(moreLikeThisQuery.getLikeFields().length, greaterThan(0));
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
// we rely on integration tests for a deeper check here
|
|
|
assertThat(query, instanceOf(MoreLikeThisQuery.class));
|
|
|
@@ -310,6 +319,12 @@ public class MoreLikeThisQueryBuilderTests extends AbstractQueryTestCase<MoreLik
|
|
|
assertEquals(expectedItem, newItem);
|
|
|
}
|
|
|
|
|
|
+ public void testItemCopy() throws IOException {
|
|
|
+ Item expectedItem = generateRandomItem();
|
|
|
+ Item newItem = new Item(expectedItem);
|
|
|
+ assertEquals(expectedItem, newItem);
|
|
|
+ }
|
|
|
+
|
|
|
public void testItemFromXContent() throws IOException {
|
|
|
Item expectedItem = generateRandomItem();
|
|
|
String json = expectedItem.toXContent(XContentFactory.jsonBuilder(), ToXContent.EMPTY_PARAMS).string();
|