|
27 | 27 | import org.elasticsearch.action.search.SearchPhaseExecutionException;
|
28 | 28 | import org.elasticsearch.action.search.ShardSearchFailure;
|
29 | 29 | import org.elasticsearch.common.ParsingException;
|
| 30 | +import org.elasticsearch.common.bytes.BytesArray; |
30 | 31 | import org.elasticsearch.common.io.stream.BytesStreamOutput;
|
31 | 32 | import org.elasticsearch.common.io.stream.NotSerializableExceptionWrapper;
|
32 | 33 | import org.elasticsearch.common.io.stream.StreamInput;
|
33 | 34 | import org.elasticsearch.common.xcontent.ToXContent;
|
34 | 35 | import org.elasticsearch.common.xcontent.XContentBuilder;
|
35 | 36 | import org.elasticsearch.common.xcontent.XContentFactory;
|
36 | 37 | import org.elasticsearch.common.xcontent.XContentLocation;
|
| 38 | +import org.elasticsearch.common.xcontent.XContentType; |
37 | 39 | import org.elasticsearch.index.Index;
|
38 | 40 | import org.elasticsearch.index.IndexNotFoundException;
|
39 | 41 | import org.elasticsearch.index.query.QueryShardException;
|
|
43 | 45 | import org.elasticsearch.test.ESTestCase;
|
44 | 46 | import org.elasticsearch.test.TestSearchContext;
|
45 | 47 | import org.elasticsearch.test.VersionUtils;
|
46 |
| -import org.elasticsearch.test.hamcrest.ElasticsearchAssertions; |
47 | 48 | import org.elasticsearch.transport.RemoteTransportException;
|
48 |
| -import org.hamcrest.Matchers; |
49 | 49 |
|
50 | 50 | import java.io.EOFException;
|
51 | 51 | import java.io.FileNotFoundException;
|
52 | 52 | import java.io.IOException;
|
53 | 53 | import java.nio.file.NoSuchFileException;
|
54 | 54 |
|
| 55 | +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertToXContentEquivalent; |
| 56 | +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertVersionSerializable; |
55 | 57 | import static org.hamcrest.Matchers.equalTo;
|
56 | 58 |
|
57 | 59 | public class ESExceptionTests extends ESTestCase {
|
@@ -286,18 +288,21 @@ public void testToXContent() throws IOException {
|
286 | 288 | assertEquals("{\"type\":\"file_not_found_exception\",\"reason\":\"foo not found\"}", builder.string());
|
287 | 289 | }
|
288 | 290 |
|
289 |
| - { // render header |
| 291 | + { // render header and metadata |
290 | 292 | ParsingException ex = new ParsingException(1, 2, "foobar", null);
|
| 293 | + ex.addMetadata("es.test1", "value1"); |
| 294 | + ex.addMetadata("es.test2", "value2"); |
291 | 295 | ex.addHeader("test", "some value");
|
292 | 296 | ex.addHeader("test_multi", "some value", "another value");
|
293 | 297 | XContentBuilder builder = XContentFactory.jsonBuilder();
|
294 | 298 | builder.startObject();
|
295 | 299 | ElasticsearchException.generateThrowableXContent(builder, PARAMS, ex);
|
296 | 300 | builder.endObject();
|
297 |
| - assertThat(builder.string(), Matchers.anyOf( // iteration order depends on platform |
298 |
| - equalTo("{\"type\":\"parsing_exception\",\"reason\":\"foobar\",\"line\":1,\"col\":2,\"header\":{\"test_multi\":[\"some value\",\"another value\"],\"test\":\"some value\"}}"), |
299 |
| - equalTo("{\"type\":\"parsing_exception\",\"reason\":\"foobar\",\"line\":1,\"col\":2,\"header\":{\"test\":\"some value\",\"test_multi\":[\"some value\",\"another value\"]}}") |
300 |
| - )); |
| 301 | + String expected = "{\"type\":\"parsing_exception\",\"reason\":\"foobar\",\"line\":1,\"col\":2," + |
| 302 | + "\"test1\":\"value1\",\"test2\":\"value2\"," + |
| 303 | + "\"header\":{\"test_multi\":" + |
| 304 | + "[\"some value\",\"another value\"],\"test\":\"some value\"}}"; |
| 305 | + assertToXContentEquivalent(new BytesArray(expected), builder.bytes(), XContentType.JSON); |
301 | 306 | }
|
302 | 307 | }
|
303 | 308 |
|
@@ -371,9 +376,9 @@ public void testWriteThrowable() throws IOException {
|
371 | 376 | }
|
372 | 377 | assertArrayEquals(e.getStackTrace(), ex.getStackTrace());
|
373 | 378 | assertTrue(e.getStackTrace().length > 1);
|
374 |
| - ElasticsearchAssertions.assertVersionSerializable(VersionUtils.randomVersion(random()), cause); |
375 |
| - ElasticsearchAssertions.assertVersionSerializable(VersionUtils.randomVersion(random()), ex); |
376 |
| - ElasticsearchAssertions.assertVersionSerializable(VersionUtils.randomVersion(random()), e); |
| 379 | + assertVersionSerializable(VersionUtils.randomVersion(random()), cause); |
| 380 | + assertVersionSerializable(VersionUtils.randomVersion(random()), ex); |
| 381 | + assertVersionSerializable(VersionUtils.randomVersion(random()), e); |
377 | 382 | }
|
378 | 383 | }
|
379 | 384 |
|
|
0 commit comments