diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FilterExpressionUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FilterExpressionUnitTests.java index 398fa9c14..f054296dc 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FilterExpressionUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FilterExpressionUnitTests.java @@ -61,13 +61,7 @@ public class FilterExpressionUnitTests { .and(filter("items").as("item").by(AggregationFunctionExpressions.GTE.of(Fields.field("item.price"), 100))) .as("items")); - Document dbo = agg.toDocument("sales", aggregationContext); - - List pipeline = DocumentTestUtils.getAsDBList(dbo, "pipeline"); - Document $project = DocumentTestUtils.getAsDocument((Document) pipeline.get(0), "$project"); - Document items = DocumentTestUtils.getAsDocument($project, "items"); - Document $filter = DocumentTestUtils.getAsDocument(items, "$filter"); - + Document $filter = extractFilterOperatorFromDocument(agg.toDocument("sales", aggregationContext)); Document expected = Document.parse("{" + // "input: \"$items\"," + // "as: \"item\"," + // @@ -83,13 +77,7 @@ public class FilterExpressionUnitTests { TypedAggregation agg = Aggregation.newAggregation(Sales.class, Aggregation.project().and("items") .filter("item", AggregationFunctionExpressions.GTE.of(Fields.field("item.price"), 100)).as("items")); - Document dbo = agg.toDocument("sales", aggregationContext); - - List pipeline = DocumentTestUtils.getAsDBList(dbo, "pipeline"); - Document $project = DocumentTestUtils.getAsDocument((Document) pipeline.get(0), "$project"); - Document items = DocumentTestUtils.getAsDocument($project, "items"); - Document $filter = DocumentTestUtils.getAsDocument(items, "$filter"); - + Document $filter = extractFilterOperatorFromDocument(agg.toDocument("sales", aggregationContext)); Document expected = Document.parse("{" + // "input: \"$items\"," + // "as: \"item\"," + // @@ -106,13 +94,7 @@ public class FilterExpressionUnitTests { Aggregation.project().and(filter(Arrays. asList(1, "a", 2, null, 3.1D, 4, "5")).as("num") .by(AggregationFunctionExpressions.GTE.of(Fields.field("num"), 3))).as("items")); - Document dbo = agg.toDocument("sales", aggregationContext); - - List pipeline = DocumentTestUtils.getAsDBList(dbo, "pipeline"); - Document $project = DocumentTestUtils.getAsDocument((Document) pipeline.get(0), "$project"); - Document items = DocumentTestUtils.getAsDocument($project, "items"); - Document $filter = DocumentTestUtils.getAsDocument(items, "$filter"); - + Document $filter = extractFilterOperatorFromDocument(agg.toDocument("sales", aggregationContext)); Document expected = Document.parse("{" + // "input: [ 1, \"a\", 2, null, 3.1, 4, \"5\" ]," + // "as: \"num\"," + // @@ -129,13 +111,7 @@ public class FilterExpressionUnitTests { .and(filter("items").as("item").by(ComparisonOperators.valueOf("item.price").greaterThan("field-1"))) .as("items")); - Document dbo = agg.toDocument("sales", Aggregation.DEFAULT_CONTEXT); - - List pipeline = DocumentTestUtils.getAsDBList(dbo, "pipeline"); - Document $project = DocumentTestUtils.getAsDocument((Document) pipeline.get(0), "$project"); - Document items = DocumentTestUtils.getAsDocument($project, "items"); - Document $filter = DocumentTestUtils.getAsDocument(items, "$filter"); - + Document $filter = extractFilterOperatorFromDocument(agg.toDocument("sales", Aggregation.DEFAULT_CONTEXT)); Document expected = Document.parse("{" + // "input: \"$items\"," + // "as: \"item\"," + // @@ -145,6 +121,14 @@ public class FilterExpressionUnitTests { assertThat($filter).isEqualTo(new Document(expected)); } + private Document extractFilterOperatorFromDocument(Document source) { + + List pipeline = DocumentTestUtils.getAsDBList(source, "pipeline"); + Document $project = DocumentTestUtils.getAsDocument((Document) pipeline.get(0), "$project"); + Document items = DocumentTestUtils.getAsDocument($project, "items"); + return DocumentTestUtils.getAsDocument(items, "$filter"); + } + static class Sales { List items;