diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/ConditionalOperators.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/ConditionalOperators.java index 07bfebd70..16b8efe79 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/ConditionalOperators.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/ConditionalOperators.java @@ -207,7 +207,7 @@ public class ConditionalOperators { public OtherwiseBuilder thenValueOf(String fieldReference) { Assert.notNull(fieldReference, "FieldReference must not be null!"); - return createThenBuilder().then(fieldReference); + return createThenBuilder().thenValueOf(fieldReference); } private ThenBuilder createThenBuilder() { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationUnitTests.java index 12f2e744f..43a9cc668 100755 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationUnitTests.java @@ -27,7 +27,6 @@ import java.util.List; import org.bson.Document; import org.junit.Test; - import org.springframework.data.domain.Sort.Direction; import org.springframework.data.mongodb.core.aggregation.ConditionalOperators.Cond; import org.springframework.data.mongodb.core.query.Criteria; @@ -438,14 +437,14 @@ public class AggregationUnitTests { assertThat(getAsDocument(project, "color")).containsEntry("$cond", expectedCondition); } - @Test // DATAMONGO-861 + @Test // DATAMONGO-861, DATAMONGO-2242 public void referencingProjectionAliasesShouldRenderProjectionConditionalWithFieldReferenceCorrectly() { Document agg = Aggregation.newAggregation(// project().and("color").as("chroma"), project().and("luminosity") // .applyCondition(ConditionalOperators // .when("chroma") // - .thenValueOf("bright") // + .then("bright") // .otherwise("dark"))) // .toDocument("foo", Aggregation.DEFAULT_CONTEXT); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/CondExpressionUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/CondExpressionUnitTests.java index 9284268d2..f206e683a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/CondExpressionUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/CondExpressionUnitTests.java @@ -54,7 +54,7 @@ public class CondExpressionUnitTests { () -> newBuilder().when("isYellow").then(newBuilder().when("field").then("then-value")).otherwise("otherwise")); } - @Test // DATAMONGO-861, DATAMONGO-1542 + @Test // DATAMONGO-861, DATAMONGO-1542, DATAMONGO-2242 public void simpleBuilderShouldRenderCorrectly() { Cond operator = ConditionalOperators.when("isYellow").thenValueOf("bright").otherwise("dark"); @@ -62,13 +62,13 @@ public class CondExpressionUnitTests { Document expectedCondition = new Document() // .append("if", "$isYellow") // - .append("then", "bright") // + .append("then", "$bright") // .append("else", "dark"); assertThat(document).containsEntry("$cond", expectedCondition); } - @Test // DATAMONGO-861, DATAMONGO-1542 + @Test // DATAMONGO-861, DATAMONGO-1542, DATAMONGO-2242 public void simpleCriteriaShouldRenderCorrectly() { Cond operator = ConditionalOperators.when(Criteria.where("luminosity").gte(100)).thenValueOf("bright") @@ -77,13 +77,13 @@ public class CondExpressionUnitTests { Document expectedCondition = new Document() // .append("if", new Document("$gte", Arrays. asList("$luminosity", 100))) // - .append("then", "bright") // + .append("then", "$bright") // .append("else", "dark"); assertThat(document).containsEntry("$cond", expectedCondition); } - @Test // DATAMONGO-861 + @Test // DATAMONGO-861, DATAMONGO-2242 public void andCriteriaShouldRenderCorrectly() { Cond operator = ConditionalOperators.when(Criteria.where("luminosity").gte(100) // @@ -99,13 +99,13 @@ public class CondExpressionUnitTests { Document expectedCondition = new Document() // .append("if", Arrays. asList(luminosity, new Document("$and", Arrays.asList(hue, saturation)))) // - .append("then", "bright") // + .append("then", "$bright") // .append("else", "$dark-field"); assertThat(document).containsEntry("$cond", expectedCondition); } - @Test // DATAMONGO-861, DATAMONGO-1542 + @Test // DATAMONGO-861, DATAMONGO-1542, DATAMONGO-2242 public void twoArgsCriteriaShouldRenderCorrectly() { Criteria criteria = Criteria.where("luminosity").gte(100) // @@ -119,7 +119,7 @@ public class CondExpressionUnitTests { Document expectedCondition = new Document() // .append("if", Arrays.asList(gte, is)) // - .append("then", "bright") // + .append("then", "$bright") // .append("else", "dark"); assertThat(document).containsEntry("$cond", expectedCondition);