From 9c8a8a5a77497bbad1fc9eec4941596f9286b357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Wed, 13 Nov 2019 16:11:30 +0100 Subject: [PATCH] HSEARCH-3496 Test projection to the JSON hit in the Elasticsearch backend --- .../ElasticsearchExtensionIT.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/ElasticsearchExtensionIT.java b/integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/ElasticsearchExtensionIT.java index 500656818a3..f8bd5cf6de1 100644 --- a/integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/ElasticsearchExtensionIT.java +++ b/integrationtest/backend/elasticsearch/src/test/java/org/hibernate/search/integrationtest/backend/elasticsearch/ElasticsearchExtensionIT.java @@ -66,6 +66,7 @@ import org.elasticsearch.client.Response; import org.elasticsearch.client.RestClient; import org.json.JSONException; +import org.skyscreamer.jsonassert.JSONCompareMode; public class ElasticsearchExtensionIT { @@ -855,6 +856,27 @@ public void projection_explanation() { .contains( "\"details\":" ); } + @Test + public void projection_jsonHit() { + StubMappingScope scope = indexManager.createScope(); + + SearchQuery query = scope.query() + .asProjection( f -> f.extension( ElasticsearchExtension.get() ).jsonHit() ) + .predicate( f -> f.id().matching( FIRST_ID ) ) + .toQuery(); + + List result = query.fetchAll().getHits(); + Assertions.assertThat( result ).hasSize( 1 ); + assertJsonEquals( + "{" + + "'_id': '" + FIRST_ID + "'," + + "'_index': '" + ElasticsearchIndexNameNormalizer.normalize( INDEX_NAME ) + "'" + + "}", + result.get( 0 ).toString(), + JSONCompareMode.LENIENT + ); + } + @Test public void aggregation_nativeField() { StubMappingScope scope = indexManager.createScope();