diff options
author | Tanguy Leroux <tlrx.dev@gmail.com> | 2017-04-20 13:22:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-20 13:22:50 +0200 |
commit | d0df1ed193a86f1ddb6662b976e8cb89ae6fe9c8 (patch) | |
tree | 8c97db93af88e5c42c45138aa1e493f025613f42 /core/src/test/java/org/elasticsearch/search/aggregations | |
parent | 6e22a1e9bad79a47d4877382afe05249a46d4b0b (diff) |
[Test] Always check the XContent equivalent when parsing aggregations (#24208)
In InternalAggregationTestCase, we can check that the internal aggregation and the parsed aggregation always produce the same XContent even if the original internal aggregation has been shuffled or not.
Diffstat (limited to 'core/src/test/java/org/elasticsearch/search/aggregations')
2 files changed, 11 insertions, 14 deletions
diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationTestCase.java b/core/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationTestCase.java index 09b05dab84..fd6b9ecdc4 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationTestCase.java @@ -203,15 +203,7 @@ public abstract class InternalAggregationTestCase<T extends InternalAggregation> assumeTrue("This test does not support the aggregation type yet", getNamedXContents().stream().filter(entry -> entry.name.match(aggregation.getType())).count() > 0); - final ToXContent.Params params = new ToXContent.MapParams(singletonMap(RestSearchAction.TYPED_KEYS_PARAM, "true")); - final boolean humanReadable = randomBoolean(); - final XContentType xContentType = randomFrom(XContentType.values()); - final BytesReference originalBytes = toShuffledXContent(aggregation, xContentType, params, humanReadable); - - final Aggregation parsedAggregation = parse(aggregation, xContentType, humanReadable, randomBoolean()); - - final BytesReference parsedBytes = toXContent((ToXContent) parsedAggregation, xContentType, params, humanReadable); - assertToXContentEquivalent(originalBytes, parsedBytes, xContentType); + final Aggregation parsedAggregation = parseAndAssert(aggregation, randomBoolean()); assertFromXContent(aggregation, (ParsedAggregation) parsedAggregation); } @@ -220,12 +212,13 @@ public abstract class InternalAggregationTestCase<T extends InternalAggregation> } @SuppressWarnings("unchecked") - protected <P extends ParsedAggregation> P parse(final InternalAggregation aggregation, - final XContentType xContentType, - final boolean humanReadable, - final boolean shuffled) throws IOException { + protected <P extends ParsedAggregation> P parseAndAssert(final InternalAggregation aggregation, + final boolean shuffled) throws IOException { final ToXContent.Params params = new ToXContent.MapParams(singletonMap(RestSearchAction.TYPED_KEYS_PARAM, "true")); + final XContentType xContentType = randomFrom(XContentType.values()); + final boolean humanReadable = randomBoolean(); + final BytesReference originalBytes; if (shuffled) { originalBytes = toShuffledXContent(aggregation, xContentType, params, humanReadable); @@ -255,6 +248,10 @@ public abstract class InternalAggregationTestCase<T extends InternalAggregation> assertTrue(parsedAggregation instanceof ParsedAggregation); assertEquals(aggregation.getType(), ((ParsedAggregation) parsedAggregation).getType()); } + + BytesReference parsedBytes = toXContent((ToXContent) parsedAggregation, xContentType, params, humanReadable); + assertToXContentEquivalent(originalBytes, parsedBytes, xContentType); + return (P) parsedAggregation; } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/percentiles/AbstractPercentilesTestCase.java b/core/src/test/java/org/elasticsearch/search/aggregations/metrics/percentiles/AbstractPercentilesTestCase.java index b8648f5199..510620d12a 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/percentiles/AbstractPercentilesTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/metrics/percentiles/AbstractPercentilesTestCase.java @@ -62,7 +62,7 @@ public abstract class AbstractPercentilesTestCase<T extends InternalAggregation public void testPercentilesIterators() throws IOException { final T aggregation = createTestInstance(); - final Iterable<Percentile> parsedAggregation = parse(aggregation, randomFrom(XContentType.values()), randomBoolean(), false); + final Iterable<Percentile> parsedAggregation = parseAndAssert(aggregation, false); Iterator<Percentile> it = aggregation.iterator(); Iterator<Percentile> parsedIt = parsedAggregation.iterator(); |