I am trying to create a dummy SearchResponse object by passing the values ββmanually to the constructor. I have a JUnit test class for which I use this dummy value to mock the actual method call. Try using the method below:
public SearchResponse actionGet() throws ElasticsearchException { ShardSearchFailure[] shardFailures = new ShardSearchFailure[0]; int docId = 0; String id = "5YmRf-6OTvelt29V5dphmw"; Map<String, SearchHitField> fields = null; InternalSearchHit internalSearchHit = new InternalSearchHit(docId, id, null, fields); InternalSearchHit[] internalSearchHit1 = { internalSearchHit }; InternalSearchResponse EMPTY = new InternalSearchResponse( new InternalSearchHits(internalSearchHit1, 0, 0), null, null, null, false); SearchResponse searchResponse = new SearchResponse(EMPTY, "scrollId", 1, 1, 1000, shardFailures); return searchResponse; }
and here is my actual json value when requesting directly in elasticsearch.
{ "took": 3, "timed_out": false, "_shards": { "total": 3, "successful": 3, "failed": 0 }, "hits": { "total": 28, "max_score": null, "hits": [ { "_index": "monitoring", "_type": "quota-management", "_id": "5YmRf-6OTvelt29V5dphmw", "_score": null, "_source": { "@timestamp": "2014-08-20T15:43:20.762Z", "category_name": "cat1111", "alert_message": "the new cpu threshold has been reached 80%", "alert_type": "Critical", "view_mode": "unread" }, "sort": [ 1408549226173 ] } ] } }
I want to create a similar response by creating the actual SearchResponse object. But I could not find a way to send the values ββto InternalSearchHit[] . Please let me know how I can do this.