summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch
diff options
context:
space:
mode:
authorTanguy Leroux <tlrx.dev@gmail.com>2017-04-20 13:22:50 +0200
committerGitHub <noreply@github.com>2017-04-20 13:22:50 +0200
commitd0df1ed193a86f1ddb6662b976e8cb89ae6fe9c8 (patch)
tree8c97db93af88e5c42c45138aa1e493f025613f42 /core/src/test/java/org/elasticsearch
parent6e22a1e9bad79a47d4877382afe05249a46d4b0b (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')
-rw-r--r--core/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationTestCase.java23
-rw-r--r--core/src/test/java/org/elasticsearch/search/aggregations/metrics/percentiles/AbstractPercentilesTestCase.java2
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();