Skip to content

Commit 79f8e06

Browse files
christophstroblmp911de
authored andcommitted
DATAMONGO-2320 - Simplify test code.
Original pull request: #776.
1 parent 370db2d commit 79f8e06

File tree

1 file changed

+12
-28
lines changed

1 file changed

+12
-28
lines changed

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/FilterExpressionUnitTests.java

Lines changed: 12 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,7 @@ public void shouldConstructFilterExpressionCorrectly() {
6262
.and(filter("items").as("item").by(AggregationFunctionExpressions.GTE.of(Fields.field("item.price"), 100)))
6363
.as("items"));
6464

65-
Document dbo = agg.toDocument("sales", aggregationContext);
66-
67-
List<Object> pipeline = DocumentTestUtils.getAsDBList(dbo, "pipeline");
68-
Document $project = DocumentTestUtils.getAsDocument((Document) pipeline.get(0), "$project");
69-
Document items = DocumentTestUtils.getAsDocument($project, "items");
70-
Document $filter = DocumentTestUtils.getAsDocument(items, "$filter");
71-
65+
Document $filter = extractFilterOperatorFromDocument(agg.toDocument("sales", aggregationContext));
7266
Document expected = Document.parse("{" + //
7367
"input: \"$items\"," + //
7468
"as: \"item\"," + //
@@ -84,13 +78,7 @@ public void shouldConstructFilterExpressionCorrectlyWhenUsingFilterOnProjectionB
8478
TypedAggregation<Sales> agg = Aggregation.newAggregation(Sales.class, Aggregation.project().and("items")
8579
.filter("item", AggregationFunctionExpressions.GTE.of(Fields.field("item.price"), 100)).as("items"));
8680

87-
Document dbo = agg.toDocument("sales", aggregationContext);
88-
89-
List<Object> pipeline = DocumentTestUtils.getAsDBList(dbo, "pipeline");
90-
Document $project = DocumentTestUtils.getAsDocument((Document) pipeline.get(0), "$project");
91-
Document items = DocumentTestUtils.getAsDocument($project, "items");
92-
Document $filter = DocumentTestUtils.getAsDocument(items, "$filter");
93-
81+
Document $filter = extractFilterOperatorFromDocument(agg.toDocument("sales", aggregationContext));
9482
Document expected = Document.parse("{" + //
9583
"input: \"$items\"," + //
9684
"as: \"item\"," + //
@@ -107,13 +95,7 @@ public void shouldConstructFilterExpressionCorrectlyWhenInputMapToArray() {
10795
Aggregation.project().and(filter(Arrays.<Object> asList(1, "a", 2, null, 3.1D, 4, "5")).as("num")
10896
.by(AggregationFunctionExpressions.GTE.of(Fields.field("num"), 3))).as("items"));
10997

110-
Document dbo = agg.toDocument("sales", aggregationContext);
111-
112-
List<Object> pipeline = DocumentTestUtils.getAsDBList(dbo, "pipeline");
113-
Document $project = DocumentTestUtils.getAsDocument((Document) pipeline.get(0), "$project");
114-
Document items = DocumentTestUtils.getAsDocument($project, "items");
115-
Document $filter = DocumentTestUtils.getAsDocument(items, "$filter");
116-
98+
Document $filter = extractFilterOperatorFromDocument(agg.toDocument("sales", aggregationContext));
11799
Document expected = Document.parse("{" + //
118100
"input: [ 1, \"a\", 2, null, 3.1, 4, \"5\" ]," + //
119101
"as: \"num\"," + //
@@ -130,13 +112,7 @@ public void shouldConstructFilterExpressionCorrectlyWhenConditionContainsFieldRe
130112
.and(filter("items").as("item").by(ComparisonOperators.valueOf("item.price").greaterThan("field-1")))
131113
.as("items"));
132114

133-
Document dbo = agg.toDocument("sales", Aggregation.DEFAULT_CONTEXT);
134-
135-
List<Object> pipeline = DocumentTestUtils.getAsDBList(dbo, "pipeline");
136-
Document $project = DocumentTestUtils.getAsDocument((Document) pipeline.get(0), "$project");
137-
Document items = DocumentTestUtils.getAsDocument($project, "items");
138-
Document $filter = DocumentTestUtils.getAsDocument(items, "$filter");
139-
115+
Document $filter = extractFilterOperatorFromDocument(agg.toDocument("sales", Aggregation.DEFAULT_CONTEXT));
140116
Document expected = Document.parse("{" + //
141117
"input: \"$items\"," + //
142118
"as: \"item\"," + //
@@ -146,6 +122,14 @@ public void shouldConstructFilterExpressionCorrectlyWhenConditionContainsFieldRe
146122
assertThat($filter).isEqualTo(new Document(expected));
147123
}
148124

125+
private Document extractFilterOperatorFromDocument(Document source) {
126+
127+
List<Object> pipeline = DocumentTestUtils.getAsDBList(source, "pipeline");
128+
Document $project = DocumentTestUtils.getAsDocument((Document) pipeline.get(0), "$project");
129+
Document items = DocumentTestUtils.getAsDocument($project, "items");
130+
return DocumentTestUtils.getAsDocument(items, "$filter");
131+
}
132+
149133
static class Sales {
150134

151135
List<Object> items;

0 commit comments

Comments
 (0)