diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/ArithmeticOperators.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/ArithmeticOperators.java index 4de258b4e..7896486ab 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/ArithmeticOperators.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/ArithmeticOperators.java @@ -678,34 +678,37 @@ public class ArithmeticOperators { } /** - * Creates new {@link AggregationExpression} that calculates the sine of a numeric value given in {@link AngularDimension#RADIANS radians}. + * Creates new {@link AggregationExpression} that calculates the sine of a numeric value given in + * {@link AngularUnit#RADIANS radians}. * * @return new instance of {@link Sin}. * @since 3.3 */ public Sin sin() { - return sin(AngularDimension.RADIANS); + return sin(AngularUnit.RADIANS); } /** - * Creates new {@link AggregationExpression} that calculates the sine of a numeric value in the given {@link AngularDimension unit}. + * Creates new {@link AggregationExpression} that calculates the sine of a numeric value in the given + * {@link AngularUnit unit}. * * @param unit the unit of measure. * @return new instance of {@link Sin}. * @since 3.3 */ - public Sin sin(AngularDimension unit) { + public Sin sin(AngularUnit unit) { return usesFieldRef() ? Sin.sinOf(fieldReference, unit) : Sin.sinOf(expression, unit); } /** - * Creates new {@link AggregationExpression} that calculates the sine of a numeric value given in {@link AngularDimension#RADIANS radians}. + * Creates new {@link AggregationExpression} that calculates the sine of a numeric value given in + * {@link AngularUnit#RADIANS radians}. * * @return new instance of {@link Sin}. * @since 3.3 */ public Sinh sinh() { - return sinh(AngularDimension.RADIANS); + return sinh(AngularUnit.RADIANS); } /** @@ -715,42 +718,42 @@ public class ArithmeticOperators { * @return new instance of {@link Sin}. * @since 3.3 */ - public Sinh sinh(AngularDimension unit) { + public Sinh sinh(AngularUnit unit) { return usesFieldRef() ? Sinh.sinhOf(fieldReference, unit) : Sinh.sinhOf(expression, unit); } /** * Creates new {@link AggregationExpression} that calculates the cosine of a numeric value given in - * {@link AngularDimension#RADIANS radians}. + * {@link AngularUnit#RADIANS radians}. * * @return new instance of {@link Sin}. * @since 3.3 */ public Cos cos() { - return cos(AngularDimension.RADIANS); + return cos(AngularUnit.RADIANS); } /** * Creates new {@link AggregationExpression} that calculates the cosine of a numeric value in the given - * {@link AngularDimension unit}. + * {@link AngularUnit unit}. * * @param unit the unit of measure. * @return new instance of {@link Sin}. * @since 3.3 */ - public Cos cos(AngularDimension unit) { + public Cos cos(AngularUnit unit) { return usesFieldRef() ? Cos.cosOf(fieldReference, unit) : Cos.cosOf(expression, unit); } /** * Creates new {@link AggregationExpression} that calculates the hyperbolic cosine of a numeric value given in - * {@link AngularDimension#RADIANS radians}. + * {@link AngularUnit#RADIANS radians}. * * @return new instance of {@link Sin}. * @since 3.3 */ public Cosh cosh() { - return cosh(AngularDimension.RADIANS); + return cosh(AngularUnit.RADIANS); } /** @@ -760,42 +763,42 @@ public class ArithmeticOperators { * @return new instance of {@link Sin}. * @since 3.3 */ - public Cosh cosh(AngularDimension unit) { + public Cosh cosh(AngularUnit unit) { return usesFieldRef() ? Cosh.coshOf(fieldReference, unit) : Cosh.coshOf(expression, unit); } /** * Creates new {@link AggregationExpression} that calculates the tangent of a numeric value given in - * {@link AngularDimension#RADIANS radians}. + * {@link AngularUnit#RADIANS radians}. * * @return new instance of {@link Sin}. * @since 3.3 */ public Tan tan() { - return tan(AngularDimension.RADIANS); + return tan(AngularUnit.RADIANS); } /** * Creates new {@link AggregationExpression} that calculates the tangent of a numeric value in the given - * {@link AngularDimension unit}. + * {@link AngularUnit unit}. * * @param unit the unit of measure. * @return new instance of {@link Sin}. * @since 3.3 */ - public Tan tan(AngularDimension unit) { + public Tan tan(AngularUnit unit) { return usesFieldRef() ? Tan.tanOf(fieldReference, unit) : Tan.tanOf(expression, unit); } /** * Creates new {@link AggregationExpression} that calculates the hyperbolic tangent of a numeric value given in - * {@link AngularDimension#RADIANS radians}. + * {@link AngularUnit#RADIANS radians}. * * @return new instance of {@link Sin}. * @since 3.3 */ public Tanh tanh() { - return tanh(AngularDimension.RADIANS); + return tanh(AngularUnit.RADIANS); } /** @@ -805,7 +808,7 @@ public class ArithmeticOperators { * @return new instance of {@link Sin}. * @since 3.3 */ - public Tanh tanh(AngularDimension unit) { + public Tanh tanh(AngularUnit unit) { return usesFieldRef() ? Tanh.tanhOf(fieldReference, unit) : Tanh.tanhOf(expression, unit); } @@ -2047,7 +2050,7 @@ public class ArithmeticOperators { * @author Christoph Strobl * @since 3.3 */ - public enum AngularDimension { + public enum AngularUnit { RADIANS, DEGREES } @@ -2065,76 +2068,82 @@ public class ArithmeticOperators { /** * Creates a new {@link AggregationExpression} that calculates the sine of a value that is measured in - * {@link AngularDimension#RADIANS radians}. + * {@link AngularUnit#RADIANS radians}. *
- * Use {@code sinhOf("angle", DEGREES)} as shortcut for{ $sinh : { $degreesToRadians : "$angle" } }.
+ * Use {@code sinhOf("angle", DEGREES)} as shortcut for
+ *
+ *
+ * { $sinh : { $degreesToRadians : "$angle" } }
+ *
+ *
+ * .
*
* @param fieldReference the name of the {@link Field field} that resolves to a numeric value.
* @return new instance of {@link Sin}.
*/
public static Sin sinOf(String fieldReference) {
- return sinOf(fieldReference, AngularDimension.RADIANS);
+ return sinOf(fieldReference, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the sine of a value that is measured in the given
- * {@link AngularDimension unit}.
+ * {@link AngularUnit unit}.
*
* @param fieldReference the name of the {@link Field field} that resolves to a numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Sin}.
*/
- public static Sin sinOf(String fieldReference, AngularDimension unit) {
+ public static Sin sinOf(String fieldReference, AngularUnit unit) {
return sin(Fields.field(fieldReference), unit);
}
/**
* Creates a new {@link AggregationExpression} that calculates the sine of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @param expression the {@link AggregationExpression expression} that resolves to a numeric value.
* @return new instance of {@link Sin}.
*/
public static Sin sinOf(AggregationExpression expression) {
- return sinOf(expression, AngularDimension.RADIANS);
+ return sinOf(expression, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the sine of a value that is measured in the given
- * {@link AngularDimension unit}.
+ * {@link AngularUnit unit}.
*
* @param expression the {@link AggregationExpression expression} that resolves to a numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Sin}.
*/
- public static Sin sinOf(AggregationExpression expression, AngularDimension unit) {
+ public static Sin sinOf(AggregationExpression expression, AngularUnit unit) {
return sin(expression, unit);
}
/**
* Creates a new {@link AggregationExpression} that calculates the sine of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @param value anything ({@link Field field}, {@link AggregationExpression expression}, ...) that resolves to a
* numeric value
* @return new instance of {@link Sin}.
*/
public static Sin sin(Object value) {
- return sin(value, AngularDimension.RADIANS);
+ return sin(value, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the sine of a value that is measured in the given
- * {@link AngularDimension unit}.
+ * {@link AngularUnit unit}.
*
* @param value anything ({@link Field field}, {@link AggregationExpression expression}, ...) that resolves to a
* numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Sin}.
*/
- public static Sin sin(Object value, AngularDimension unit) {
+ public static Sin sin(Object value, AngularUnit unit) {
- if (ObjectUtils.nullSafeEquals(AngularDimension.DEGREES, unit)) {
+ if (ObjectUtils.nullSafeEquals(AngularUnit.DEGREES, unit)) {
return new Sin(ConvertOperators.DegreesToRadians.degreesToRadians(value));
}
return new Sin(value);
@@ -2148,7 +2157,7 @@ public class ArithmeticOperators {
/**
* An {@link AggregationExpression expression} that calculates the hyperbolic sine of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @author Christoph Strobl
* @since 3.3
@@ -2161,78 +2170,85 @@ public class ArithmeticOperators {
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic sine of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @param fieldReference the name of the {@link Field field} that resolves to a numeric value.
* @return new instance of {@link Sin}.
*/
public static Sinh sinhOf(String fieldReference) {
- return sinhOf(fieldReference, AngularDimension.RADIANS);
+ return sinhOf(fieldReference, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic sine of a value that is measured in
- * the given {@link AngularDimension unit}.
+ * the given {@link AngularUnit unit}.
*
- * Use {@code sinhOf("angle", DEGREES)} as shortcut for { $sinh : { $degreesToRadians : "$angle" } }.
+ * Use {@code sinhOf("angle", DEGREES)} as shortcut for
+ *
+ *
+ * { $sinh : { $degreesToRadians : "$angle" } }
+ *
+ *
+ * .
*
* @param fieldReference the name of the {@link Field field} that resolves to a numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Sin}.
*/
- public static Sinh sinhOf(String fieldReference, AngularDimension unit) {
+ public static Sinh sinhOf(String fieldReference, AngularUnit unit) {
return sinh(Fields.field(fieldReference), unit);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic sine of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
- * Use {@code sinhOf("angle", DEGREES)} as shortcut for eg. {@code sinhOf(ConvertOperators.valueOf("angle").degreesToRadians())}.
+ * Use {@code sinhOf("angle", DEGREES)} as shortcut for eg.
+ * {@code sinhOf(ConvertOperators.valueOf("angle").degreesToRadians())}.
*
* @param expression the {@link AggregationExpression expression} that resolves to a numeric value.
* @return new instance of {@link Sin}.
*/
public static Sinh sinhOf(AggregationExpression expression) {
- return sinhOf(expression, AngularDimension.RADIANS);
+ return sinhOf(expression, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic sine of a value that is measured in
- * the given {@link AngularDimension unit}.
+ * the given {@link AngularUnit unit}.
*
* @param expression the {@link AggregationExpression expression} that resolves to a numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Sin}.
*/
- public static Sinh sinhOf(AggregationExpression expression, AngularDimension unit) {
+ public static Sinh sinhOf(AggregationExpression expression, AngularUnit unit) {
return sinh(expression, unit);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic sine of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @param value anything ({@link Field field}, {@link AggregationExpression expression}, ...) that resolves to a
* numeric value.
* @return new instance of {@link Sin}.
*/
public static Sinh sinh(Object value) {
- return sinh(value, AngularDimension.RADIANS);
+ return sinh(value, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic sine of a value that is measured in
- * the given {@link AngularDimension unit}.
+ * the given {@link AngularUnit unit}.
*
* @param value anything ({@link Field field}, {@link AggregationExpression expression}, ...) that resolves to a
* numeric value
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Sin}.
*/
- public static Sinh sinh(Object value, AngularDimension unit) {
+ public static Sinh sinh(Object value, AngularUnit unit) {
- if (ObjectUtils.nullSafeEquals(AngularDimension.DEGREES, unit)) {
+ if (ObjectUtils.nullSafeEquals(AngularUnit.DEGREES, unit)) {
return new Sinh(ConvertOperators.DegreesToRadians.degreesToRadians(value));
}
return new Sinh(value);
@@ -2258,82 +2274,82 @@ public class ArithmeticOperators {
/**
* Creates a new {@link AggregationExpression} that calculates the cosine of a value that is measured in
- * {@link AngularDimension#RADIANS radians}.
+ * {@link AngularUnit#RADIANS radians}.
*
* Use {@code cosOf("angle", DEGREES)} as shortcut for
- *
+ *
*
* { $cos : { $degreesToRadians : "$angle" } }
*
- *
+ *
* .
*
* @param fieldReference the name of the {@link Field field} that resolves to a numeric value.
* @return new instance of {@link Cos}.
*/
public static Cos cosOf(String fieldReference) {
- return cosOf(fieldReference, AngularDimension.RADIANS);
+ return cosOf(fieldReference, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the cosine of a value that is measured in the given
- * {@link AngularDimension unit}.
+ * {@link AngularUnit unit}.
*
* @param fieldReference the name of the {@link Field field} that resolves to a numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Cos}.
*/
- public static Cos cosOf(String fieldReference, AngularDimension unit) {
+ public static Cos cosOf(String fieldReference, AngularUnit unit) {
return cos(Fields.field(fieldReference), unit);
}
/**
* Creates a new {@link AggregationExpression} that calculates the cosine of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @param expression the {@link AggregationExpression expression} that resolves to a numeric value.
* @return new instance of {@link Cos}.
*/
public static Cos cosOf(AggregationExpression expression) {
- return cosOf(expression, AngularDimension.RADIANS);
+ return cosOf(expression, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the cosine of a value that is measured in the given
- * {@link AngularDimension unit}.
+ * {@link AngularUnit unit}.
*
* @param expression the {@link AggregationExpression expression} that resolves to a numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Cos}.
*/
- public static Cos cosOf(AggregationExpression expression, AngularDimension unit) {
+ public static Cos cosOf(AggregationExpression expression, AngularUnit unit) {
return cos(expression, unit);
}
/**
* Creates a new {@link AggregationExpression} that calculates the cosine of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @param value anything ({@link Field field}, {@link AggregationExpression expression}, ...) that resolves to a
* numeric value
* @return new instance of {@link Cos}.
*/
public static Cos cos(Object value) {
- return cos(value, AngularDimension.RADIANS);
+ return cos(value, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the cosine of a value that is measured in the given
- * {@link AngularDimension unit}.
+ * {@link AngularUnit unit}.
*
* @param value anything ({@link Field field}, {@link AggregationExpression expression}, ...) that resolves to a
* numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Cos}.
*/
- public static Cos cos(Object value, AngularDimension unit) {
+ public static Cos cos(Object value, AngularUnit unit) {
- if (ObjectUtils.nullSafeEquals(AngularDimension.DEGREES, unit)) {
+ if (ObjectUtils.nullSafeEquals(AngularUnit.DEGREES, unit)) {
return new Cos(ConvertOperators.DegreesToRadians.degreesToRadians(value));
}
return new Cos(value);
@@ -2347,7 +2363,7 @@ public class ArithmeticOperators {
/**
* An {@link AggregationExpression expression} that calculates the hyperbolic cosine of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @author Christoph Strobl
* @since 3.3
@@ -2360,38 +2376,38 @@ public class ArithmeticOperators {
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic cosine of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @param fieldReference the name of the {@link Field field} that resolves to a numeric value.
* @return new instance of {@link Cosh}.
*/
public static Cosh coshOf(String fieldReference) {
- return coshOf(fieldReference, AngularDimension.RADIANS);
+ return coshOf(fieldReference, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic cosine of a value that is measured in
- * the given {@link AngularDimension unit}.
+ * the given {@link AngularUnit unit}.
*
* Use {@code coshOf("angle", DEGREES)} as shortcut for
- *
+ *
*
* { $cosh : { $degreesToRadians : "$angle" } }
*
- *
+ *
* .
*
* @param fieldReference the name of the {@link Field field} that resolves to a numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Cosh}.
*/
- public static Cosh coshOf(String fieldReference, AngularDimension unit) {
+ public static Cosh coshOf(String fieldReference, AngularUnit unit) {
return cosh(Fields.field(fieldReference), unit);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic cosine of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* Use {@code sinhOf("angle", DEGREES)} as shortcut for eg.
* {@code sinhOf(ConvertOperators.valueOf("angle").degreesToRadians())}.
@@ -2400,45 +2416,45 @@ public class ArithmeticOperators {
* @return new instance of {@link Cosh}.
*/
public static Cosh coshOf(AggregationExpression expression) {
- return coshOf(expression, AngularDimension.RADIANS);
+ return coshOf(expression, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic cosine of a value that is measured in
- * the given {@link AngularDimension unit}.
+ * the given {@link AngularUnit unit}.
*
* @param expression the {@link AggregationExpression expression} that resolves to a numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Cosh}.
*/
- public static Cosh coshOf(AggregationExpression expression, AngularDimension unit) {
+ public static Cosh coshOf(AggregationExpression expression, AngularUnit unit) {
return cosh(expression, unit);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic cosine of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @param value anything ({@link Field field}, {@link AggregationExpression expression}, ...) that resolves to a
* numeric value.
* @return new instance of {@link Cosh}.
*/
public static Cosh cosh(Object value) {
- return cosh(value, AngularDimension.RADIANS);
+ return cosh(value, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic cosine of a value that is measured in
- * the given {@link AngularDimension unit}.
+ * the given {@link AngularUnit unit}.
*
* @param value anything ({@link Field field}, {@link AggregationExpression expression}, ...) that resolves to a
* numeric value
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Cosh}.
*/
- public static Cosh cosh(Object value, AngularDimension unit) {
+ public static Cosh cosh(Object value, AngularUnit unit) {
- if (ObjectUtils.nullSafeEquals(AngularDimension.DEGREES, unit)) {
+ if (ObjectUtils.nullSafeEquals(AngularUnit.DEGREES, unit)) {
return new Cosh(ConvertOperators.DegreesToRadians.degreesToRadians(value));
}
return new Cosh(value);
@@ -2464,82 +2480,82 @@ public class ArithmeticOperators {
/**
* Creates a new {@link AggregationExpression} that calculates the tangent of a value that is measured in
- * {@link AngularDimension#RADIANS radians}.
+ * {@link AngularUnit#RADIANS radians}.
*
* Use {@code tanOf("angle", DEGREES)} as shortcut for
- *
+ *
*
* { $tan : { $degreesToRadians : "$angle" } }
*
- *
+ *
* .
*
* @param fieldReference the name of the {@link Field field} that resolves to a numeric value.
* @return new instance of {@link Tan}.
*/
public static Tan tanOf(String fieldReference) {
- return tanOf(fieldReference, AngularDimension.RADIANS);
+ return tanOf(fieldReference, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the tangent of a value that is measured in the given
- * {@link AngularDimension unit}.
+ * {@link AngularUnit unit}.
*
* @param fieldReference the name of the {@link Field field} that resolves to a numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Tan}.
*/
- public static Tan tanOf(String fieldReference, AngularDimension unit) {
+ public static Tan tanOf(String fieldReference, AngularUnit unit) {
return tan(Fields.field(fieldReference), unit);
}
/**
* Creates a new {@link AggregationExpression} that calculates the tangent of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @param expression the {@link AggregationExpression expression} that resolves to a numeric value.
* @return new instance of {@link Tan}.
*/
public static Tan tanOf(AggregationExpression expression) {
- return tanOf(expression, AngularDimension.RADIANS);
+ return tanOf(expression, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the tangent of a value that is measured in the given
- * {@link AngularDimension unit}.
+ * {@link AngularUnit unit}.
*
* @param expression the {@link AggregationExpression expression} that resolves to a numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Tan}.
*/
- public static Tan tanOf(AggregationExpression expression, AngularDimension unit) {
+ public static Tan tanOf(AggregationExpression expression, AngularUnit unit) {
return tan(expression, unit);
}
/**
* Creates a new {@link AggregationExpression} that calculates the tangent of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @param value anything ({@link Field field}, {@link AggregationExpression expression}, ...) that resolves to a
* numeric value
* @return new instance of {@link Tan}.
*/
public static Tan tan(Object value) {
- return tan(value, AngularDimension.RADIANS);
+ return tan(value, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the tangent of a value that is measured in the given
- * {@link AngularDimension unit}.
+ * {@link AngularUnit unit}.
*
* @param value anything ({@link Field field}, {@link AggregationExpression expression}, ...) that resolves to a
* numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Tan}.
*/
- public static Tan tan(Object value, AngularDimension unit) {
+ public static Tan tan(Object value, AngularUnit unit) {
- if (ObjectUtils.nullSafeEquals(AngularDimension.DEGREES, unit)) {
+ if (ObjectUtils.nullSafeEquals(AngularUnit.DEGREES, unit)) {
return new Tan(ConvertOperators.DegreesToRadians.degreesToRadians(value));
}
return new Tan(value);
@@ -2553,7 +2569,7 @@ public class ArithmeticOperators {
/**
* An {@link AggregationExpression expression} that calculates the hyperbolic tangent of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @author Christoph Strobl
* @since 3.3
@@ -2566,38 +2582,38 @@ public class ArithmeticOperators {
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic tangent of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @param fieldReference the name of the {@link Field field} that resolves to a numeric value.
* @return new instance of {@link Tanh}.
*/
public static Tanh tanhOf(String fieldReference) {
- return tanhOf(fieldReference, AngularDimension.RADIANS);
+ return tanhOf(fieldReference, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic tangent of a value that is measured in
- * the given {@link AngularDimension unit}.
+ * the given {@link AngularUnit unit}.
*
* Use {@code tanhOf("angle", DEGREES)} as shortcut for
- *
+ *
*
* { $tanh : { $degreesToRadians : "$angle" } }
*
- *
+ *
* .
*
* @param fieldReference the name of the {@link Field field} that resolves to a numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Tanh}.
*/
- public static Tanh tanhOf(String fieldReference, AngularDimension unit) {
+ public static Tanh tanhOf(String fieldReference, AngularUnit unit) {
return tanh(Fields.field(fieldReference), unit);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic tangent of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* Use {@code sinhOf("angle", DEGREES)} as shortcut for eg.
* {@code sinhOf(ConvertOperators.valueOf("angle").degreesToRadians())}.
@@ -2606,45 +2622,45 @@ public class ArithmeticOperators {
* @return new instance of {@link Tanh}.
*/
public static Tanh tanhOf(AggregationExpression expression) {
- return tanhOf(expression, AngularDimension.RADIANS);
+ return tanhOf(expression, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic tangent of a value that is measured in
- * the given {@link AngularDimension unit}.
+ * the given {@link AngularUnit unit}.
*
* @param expression the {@link AggregationExpression expression} that resolves to a numeric value.
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Tanh}.
*/
- public static Tanh tanhOf(AggregationExpression expression, AngularDimension unit) {
+ public static Tanh tanhOf(AggregationExpression expression, AngularUnit unit) {
return tanh(expression, unit);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic tangent of a value that is measured in
- * {@link AngularDimension#RADIANS}.
+ * {@link AngularUnit#RADIANS}.
*
* @param value anything ({@link Field field}, {@link AggregationExpression expression}, ...) that resolves to a
* numeric value.
* @return new instance of {@link Tanh}.
*/
public static Tanh tanh(Object value) {
- return tanh(value, AngularDimension.RADIANS);
+ return tanh(value, AngularUnit.RADIANS);
}
/**
* Creates a new {@link AggregationExpression} that calculates the hyperbolic tangent of a value that is measured in
- * the given {@link AngularDimension unit}.
+ * the given {@link AngularUnit unit}.
*
* @param value anything ({@link Field field}, {@link AggregationExpression expression}, ...) that resolves to a
* numeric value
* @param unit the unit of measure used by the value of the given field.
* @return new instance of {@link Tanh}.
*/
- public static Tanh tanh(Object value, AngularDimension unit) {
+ public static Tanh tanh(Object value, AngularUnit unit) {
- if (ObjectUtils.nullSafeEquals(AngularDimension.DEGREES, unit)) {
+ if (ObjectUtils.nullSafeEquals(AngularUnit.DEGREES, unit)) {
return new Tanh(ConvertOperators.DegreesToRadians.degreesToRadians(value));
}
return new Tanh(value);
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/ConvertOperators.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/ConvertOperators.java
index b34933444..637ebd8d8 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/ConvertOperators.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/ConvertOperators.java
@@ -232,7 +232,8 @@ public class ConvertOperators {
}
/**
- * {@link AggregationExpression} for {@code $degreesToRadians} that converts an input value measured in degrees to radians.\
+ * {@link AggregationExpression} for {@code $degreesToRadians} that converts an input value measured in degrees to
+ * radians.
*
* @return new instance of {@link DegreesToRadians}.
* @since 3.3
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ArithmeticOperatorsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ArithmeticOperatorsUnitTests.java
index 55d164756..7cde7cd1c 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ArithmeticOperatorsUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/ArithmeticOperatorsUnitTests.java
@@ -86,84 +86,84 @@ class ArithmeticOperatorsUnitTests {
void rendersSin() {
assertThat(valueOf("angle").sin().toDocument(Aggregation.DEFAULT_CONTEXT))
- .isEqualTo(Document.parse("{ $sin : \"$angle\" }"));
+ .isEqualTo("{ $sin : \"$angle\" }");
}
@Test // GH-3728
void rendersSinWithValueInDegrees() {
- assertThat(valueOf("angle").sin(AngularDimension.DEGREES).toDocument(Aggregation.DEFAULT_CONTEXT))
- .isEqualTo(Document.parse("{ $sin : { $degreesToRadians : \"$angle\" } }"));
+ assertThat(valueOf("angle").sin(AngularUnit.DEGREES).toDocument(Aggregation.DEFAULT_CONTEXT))
+ .isEqualTo("{ $sin : { $degreesToRadians : \"$angle\" } }");
}
@Test // GH-3728
void rendersSinh() {
assertThat(valueOf("angle").sinh().toDocument(Aggregation.DEFAULT_CONTEXT))
- .isEqualTo(Document.parse("{ $sinh : \"$angle\" }"));
+ .isEqualTo("{ $sinh : \"$angle\" }");
}
@Test // GH-3728
void rendersSinhWithValueInDegrees() {
- assertThat(valueOf("angle").sinh(AngularDimension.DEGREES).toDocument(Aggregation.DEFAULT_CONTEXT))
- .isEqualTo(Document.parse("{ $sinh : { $degreesToRadians : \"$angle\" } }"));
+ assertThat(valueOf("angle").sinh(AngularUnit.DEGREES).toDocument(Aggregation.DEFAULT_CONTEXT))
+ .isEqualTo("{ $sinh : { $degreesToRadians : \"$angle\" } }");
}
@Test // GH-3710
void rendersCos() {
assertThat(valueOf("angle").cos().toDocument(Aggregation.DEFAULT_CONTEXT))
- .isEqualTo(Document.parse("{ $cos : \"$angle\" }"));
+ .isEqualTo("{ $cos : \"$angle\" }");
}
@Test // GH-3710
void rendersCosWithValueInDegrees() {
- assertThat(valueOf("angle").cos(AngularDimension.DEGREES).toDocument(Aggregation.DEFAULT_CONTEXT))
- .isEqualTo(Document.parse("{ $cos : { $degreesToRadians : \"$angle\" } }"));
+ assertThat(valueOf("angle").cos(AngularUnit.DEGREES).toDocument(Aggregation.DEFAULT_CONTEXT))
+ .isEqualTo("{ $cos : { $degreesToRadians : \"$angle\" } }");
}
@Test // GH-3710
void rendersCosh() {
assertThat(valueOf("angle").cosh().toDocument(Aggregation.DEFAULT_CONTEXT))
- .isEqualTo(Document.parse("{ $cosh : \"$angle\" }"));
+ .isEqualTo("{ $cosh : \"$angle\" }");
}
@Test // GH-3710
void rendersCoshWithValueInDegrees() {
- assertThat(valueOf("angle").cosh(AngularDimension.DEGREES).toDocument(Aggregation.DEFAULT_CONTEXT))
- .isEqualTo(Document.parse("{ $cosh : { $degreesToRadians : \"$angle\" } }"));
+ assertThat(valueOf("angle").cosh(AngularUnit.DEGREES).toDocument(Aggregation.DEFAULT_CONTEXT))
+ .isEqualTo("{ $cosh : { $degreesToRadians : \"$angle\" } }");
}
@Test // GH-3730
void rendersTan() {
assertThat(valueOf("angle").tan().toDocument(Aggregation.DEFAULT_CONTEXT))
- .isEqualTo(Document.parse("{ $tan : \"$angle\" }"));
+ .isEqualTo("{ $tan : \"$angle\" }");
}
@Test // GH-3730
void rendersTanWithValueInDegrees() {
- assertThat(valueOf("angle").tan(AngularDimension.DEGREES).toDocument(Aggregation.DEFAULT_CONTEXT))
- .isEqualTo(Document.parse("{ $tan : { $degreesToRadians : \"$angle\" } }"));
+ assertThat(valueOf("angle").tan(AngularUnit.DEGREES).toDocument(Aggregation.DEFAULT_CONTEXT))
+ .isEqualTo("{ $tan : { $degreesToRadians : \"$angle\" } }");
}
@Test // GH-3730
void rendersTanh() {
assertThat(valueOf("angle").tanh().toDocument(Aggregation.DEFAULT_CONTEXT))
- .isEqualTo(Document.parse("{ $tanh : \"$angle\" }"));
+ .isEqualTo("{ $tanh : \"$angle\" }");
}
@Test // GH-3730
void rendersTanhWithValueInDegrees() {
- assertThat(valueOf("angle").tanh(AngularDimension.DEGREES).toDocument(Aggregation.DEFAULT_CONTEXT))
- .isEqualTo(Document.parse("{ $tanh : { $degreesToRadians : \"$angle\" } }"));
+ assertThat(valueOf("angle").tanh(AngularUnit.DEGREES).toDocument(Aggregation.DEFAULT_CONTEXT))
+ .isEqualTo("{ $tanh : { $degreesToRadians : \"$angle\" } }");
}
}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SpelExpressionTransformerUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SpelExpressionTransformerUnitTests.java
index e30f7f9fb..193ffb520 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SpelExpressionTransformerUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SpelExpressionTransformerUnitTests.java
@@ -15,7 +15,7 @@
*/
package org.springframework.data.mongodb.core.aggregation;
-import static org.assertj.core.api.Assertions.*;
+import static org.springframework.data.mongodb.test.util.Assertions.*;
import java.util.Arrays;
@@ -53,21 +53,21 @@ public class SpelExpressionTransformerUnitTests {
@Test // DATAMONGO-774
void shouldRenderConstantExpression() {
- assertThat(transform("1")).isEqualTo("1");
- assertThat(transform("-1")).isEqualTo("-1");
- assertThat(transform("1.0")).isEqualTo("1.0");
- assertThat(transform("-1.0")).isEqualTo("-1.0");
- assertThat(transform("null")).isNull();
+ assertThat(transformValue("1")).isEqualTo("1");
+ assertThat(transformValue("-1")).isEqualTo("-1");
+ assertThat(transformValue("1.0")).isEqualTo("1.0");
+ assertThat(transformValue("-1.0")).isEqualTo("-1.0");
+ assertThat(transformValue("null")).isNull();
}
@Test // DATAMONGO-774
void shouldSupportKnownOperands() {
- assertThat(transform("a + b")).isEqualTo(Document.parse("{ \"$add\" : [ \"$a\" , \"$b\"]}"));
- assertThat(transform("a - b")).isEqualTo(Document.parse("{ \"$subtract\" : [ \"$a\" , \"$b\"]}"));
- assertThat(transform("a * b")).isEqualTo(Document.parse("{ \"$multiply\" : [ \"$a\" , \"$b\"]}"));
- assertThat(transform("a / b")).isEqualTo(Document.parse("{ \"$divide\" : [ \"$a\" , \"$b\"]}"));
- assertThat(transform("a % b")).isEqualTo(Document.parse("{ \"$mod\" : [ \"$a\" , \"$b\"]}"));
+ assertThat(transform("a + b")).isEqualTo("{ \"$add\" : [ \"$a\" , \"$b\"]}");
+ assertThat(transform("a - b")).isEqualTo("{ \"$subtract\" : [ \"$a\" , \"$b\"]}");
+ assertThat(transform("a * b")).isEqualTo("{ \"$multiply\" : [ \"$a\" , \"$b\"]}");
+ assertThat(transform("a / b")).isEqualTo("{ \"$divide\" : [ \"$a\" , \"$b\"]}");
+ assertThat(transform("a % b")).isEqualTo("{ \"$mod\" : [ \"$a\" , \"$b\"]}");
}
@Test // DATAMONGO-774
@@ -77,35 +77,35 @@ public class SpelExpressionTransformerUnitTests {
@Test // DATAMONGO-774
void shouldRenderSumExpression() {
- assertThat(transform("a + 1")).isEqualTo(Document.parse("{ \"$add\" : [ \"$a\" , 1]}"));
+ assertThat(transform("a + 1")).isEqualTo("{ \"$add\" : [ \"$a\" , 1]}");
}
@Test // DATAMONGO-774
void shouldRenderFormula() {
- assertThat(transform("(netPrice + surCharge) * taxrate + 42")).isEqualTo(Document.parse(
- "{ \"$add\" : [ { \"$multiply\" : [ { \"$add\" : [ \"$netPrice\" , \"$surCharge\"]} , \"$taxrate\"]} , 42]}"));
+ assertThat(transform("(netPrice + surCharge) * taxrate + 42")).isEqualTo(
+ "{ \"$add\" : [ { \"$multiply\" : [ { \"$add\" : [ \"$netPrice\" , \"$surCharge\"]} , \"$taxrate\"]} , 42]}");
}
@Test // DATAMONGO-774
void shouldRenderFormulaInCurlyBrackets() {
- assertThat(transform("{(netPrice + surCharge) * taxrate + 42}")).isEqualTo(Document.parse(
- "{ \"$add\" : [ { \"$multiply\" : [ { \"$add\" : [ \"$netPrice\" , \"$surCharge\"]} , \"$taxrate\"]} , 42]}"));
+ assertThat(transform("{(netPrice + surCharge) * taxrate + 42}")).isEqualTo(
+ "{ \"$add\" : [ { \"$multiply\" : [ { \"$add\" : [ \"$netPrice\" , \"$surCharge\"]} , \"$taxrate\"]} , 42]}");
}
@Test // DATAMONGO-774
void shouldRenderFieldReference() {
- assertThat(transform("foo")).isEqualTo("$foo");
- assertThat(transform("$foo")).isEqualTo("$foo");
+ assertThat(transformValue("foo")).isEqualTo("$foo");
+ assertThat(transformValue("$foo")).isEqualTo("$foo");
}
@Test // DATAMONGO-774
void shouldRenderNestedFieldReference() {
- assertThat(transform("foo.bar")).isEqualTo("$foo.bar");
- assertThat(transform("$foo.bar")).isEqualTo("$foo.bar");
+ assertThat(transformValue("foo.bar")).isEqualTo("$foo.bar");
+ assertThat(transformValue("$foo.bar")).isEqualTo("$foo.bar");
}
@Test // DATAMONGO-774
@@ -113,52 +113,52 @@ public class SpelExpressionTransformerUnitTests {
void shouldRenderNestedIndexedFieldReference() {
// TODO add support for rendering nested indexed field references
- assertThat(transform("foo[3].bar")).isEqualTo("$foo[3].bar");
+ assertThat(transformValue("foo[3].bar")).isEqualTo("$foo[3].bar");
}
@Test // DATAMONGO-774
void shouldRenderConsecutiveOperation() {
- assertThat(transform("1 + 1 + 1")).isEqualTo(Document.parse("{ \"$add\" : [ 1 , 1 , 1]}"));
+ assertThat(transform("1 + 1 + 1")).isEqualTo("{ \"$add\" : [ 1 , 1 , 1]}");
}
@Test // DATAMONGO-774
void shouldRenderComplexExpression0() {
assertThat(transform("-(1 + q)"))
- .isEqualTo(Document.parse("{ \"$multiply\" : [ -1 , { \"$add\" : [ 1 , \"$q\"]}]}"));
+ .isEqualTo("{ \"$multiply\" : [ -1 , { \"$add\" : [ 1 , \"$q\"]}]}");
}
@Test // DATAMONGO-774
void shouldRenderComplexExpression1() {
- assertThat(transform("1 + (q + 1) / (q - 1)")).isEqualTo(Document.parse(
- "{ \"$add\" : [ 1 , { \"$divide\" : [ { \"$add\" : [ \"$q\" , 1]} , { \"$subtract\" : [ \"$q\" , 1]}]}]}"));
+ assertThat(transform("1 + (q + 1) / (q - 1)")).isEqualTo(
+ "{ \"$add\" : [ 1 , { \"$divide\" : [ { \"$add\" : [ \"$q\" , 1]} , { \"$subtract\" : [ \"$q\" , 1]}]}]}");
}
@Test // DATAMONGO-774
void shouldRenderComplexExpression2() {
- assertThat(transform("(q + 1 + 4 - 5) / (q + 1 + 3 + 4)")).isEqualTo(Document.parse(
- "{ \"$divide\" : [ { \"$subtract\" : [ { \"$add\" : [ \"$q\" , 1 , 4]} , 5]} , { \"$add\" : [ \"$q\" , 1 , 3 , 4]}]}"));
+ assertThat(transform("(q + 1 + 4 - 5) / (q + 1 + 3 + 4)")).isEqualTo(
+ "{ \"$divide\" : [ { \"$subtract\" : [ { \"$add\" : [ \"$q\" , 1 , 4]} , 5]} , { \"$add\" : [ \"$q\" , 1 , 3 , 4]}]}");
}
@Test // DATAMONGO-774
void shouldRenderBinaryExpressionWithMixedSignsCorrectly() {
- assertThat(transform("-4 + 1")).isEqualTo(Document.parse("{ \"$add\" : [ -4 , 1]}"));
- assertThat(transform("1 + -4")).isEqualTo(Document.parse("{ \"$add\" : [ 1 , -4]}"));
+ assertThat(transform("-4 + 1")).isEqualTo("{ \"$add\" : [ -4 , 1]}");
+ assertThat(transform("1 + -4")).isEqualTo("{ \"$add\" : [ 1 , -4]}");
}
@Test // DATAMONGO-774
void shouldRenderConsecutiveOperationsInComplexExpression() {
assertThat(transform("1 + 1 + (1 + 1 + 1) / q"))
- .isEqualTo(Document.parse("{ \"$add\" : [ 1 , 1 , { \"$divide\" : [ { \"$add\" : [ 1 , 1 , 1]} , \"$q\"]}]}"));
+ .isEqualTo("{ \"$add\" : [ 1 , 1 , { \"$divide\" : [ { \"$add\" : [ 1 , 1 , 1]} , \"$q\"]}]}");
}
@Test // DATAMONGO-774
void shouldRenderParameterExpressionResults() {
- assertThat(transform("[0] + [1] + [2]", 1, 2, 3)).isEqualTo(Document.parse("{ \"$add\" : [ 1 , 2 , 3]}"));
+ assertThat(transform("[0] + [1] + [2]", 1, 2, 3)).isEqualTo("{ \"$add\" : [ 1 , 2 , 3]}");
}
@Test // DATAMONGO-774
@@ -189,852 +189,856 @@ public class SpelExpressionTransformerUnitTests {
Person person = new Person();
person.setAge(10);
- assertThat(transform("[0].age + a.c", person)).isEqualTo(Document.parse("{ \"$add\" : [ 10 , \"$a.c\"] }"));
+ assertThat(transform("[0].age + a.c", person)).isEqualTo("{ \"$add\" : [ 10 , \"$a.c\"] }");
}
@Test // DATAMONGO-840
void shouldRenderCompoundExpressionsWithOnlyFieldReferences() {
- assertThat(transform("a.b + a.c")).isEqualTo(Document.parse("{ \"$add\" : [ \"$a.b\" , \"$a.c\"]}"));
+ assertThat(transform("a.b + a.c")).isEqualTo("{ \"$add\" : [ \"$a.b\" , \"$a.c\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeAnd() {
- assertThat(transform("and(a, b)")).isEqualTo(Document.parse("{ \"$and\" : [ \"$a\" , \"$b\"]}"));
+ assertThat(transform("and(a, b)")).isEqualTo("{ \"$and\" : [ \"$a\" , \"$b\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeOr() {
- assertThat(transform("or(a, b)")).isEqualTo(Document.parse("{ \"$or\" : [ \"$a\" , \"$b\"]}"));
+ assertThat(transform("or(a, b)")).isEqualTo("{ \"$or\" : [ \"$a\" , \"$b\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeNot() {
- assertThat(transform("not(a)")).isEqualTo(Document.parse("{ \"$not\" : [ \"$a\"]}"));
+ assertThat(transform("not(a)")).isEqualTo("{ \"$not\" : [ \"$a\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeSetEquals() {
- assertThat(transform("setEquals(a, b)")).isEqualTo(Document.parse("{ \"$setEquals\" : [ \"$a\" , \"$b\"]}"));
+ assertThat(transform("setEquals(a, b)")).isEqualTo("{ \"$setEquals\" : [ \"$a\" , \"$b\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeSetEqualsForArrays() {
assertThat(transform("setEquals(new int[]{1,2,3}, new int[]{4,5,6})"))
- .isEqualTo(Document.parse("{ \"$setEquals\" : [ [ 1 , 2 , 3] , [ 4 , 5 , 6]]}"));
+ .isEqualTo("{ \"$setEquals\" : [ [ 1 , 2 , 3] , [ 4 , 5 , 6]]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeSetEqualsMixedArrays() {
assertThat(transform("setEquals(a, new int[]{4,5,6})"))
- .isEqualTo(Document.parse("{ \"$setEquals\" : [ \"$a\" , [ 4 , 5 , 6]]}"));
+ .isEqualTo("{ \"$setEquals\" : [ \"$a\" , [ 4 , 5 , 6]]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceSetIntersection() {
assertThat(transform("setIntersection(a, new int[]{4,5,6})"))
- .isEqualTo(Document.parse("{ \"$setIntersection\" : [ \"$a\" , [ 4 , 5 , 6]]}"));
+ .isEqualTo("{ \"$setIntersection\" : [ \"$a\" , [ 4 , 5 , 6]]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceSetUnion() {
assertThat(transform("setUnion(a, new int[]{4,5,6})"))
- .isEqualTo(Document.parse("{ \"$setUnion\" : [ \"$a\" , [ 4 , 5 , 6]]}"));
+ .isEqualTo("{ \"$setUnion\" : [ \"$a\" , [ 4 , 5 , 6]]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceSeDifference() {
assertThat(transform("setDifference(a, new int[]{4,5,6})"))
- .isEqualTo(Document.parse("{ \"$setDifference\" : [ \"$a\" , [ 4 , 5 , 6]]}"));
+ .isEqualTo("{ \"$setDifference\" : [ \"$a\" , [ 4 , 5 , 6]]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceSetIsSubset() {
assertThat(transform("setIsSubset(a, new int[]{4,5,6})"))
- .isEqualTo(Document.parse("{ \"$setIsSubset\" : [ \"$a\" , [ 4 , 5 , 6]]}"));
+ .isEqualTo("{ \"$setIsSubset\" : [ \"$a\" , [ 4 , 5 , 6]]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceAnyElementTrue() {
- assertThat(transform("anyElementTrue(a)")).isEqualTo(Document.parse("{ \"$anyElementTrue\" : [ \"$a\"]}"));
+ assertThat(transform("anyElementTrue(a)")).isEqualTo("{ \"$anyElementTrue\" : [ \"$a\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceAllElementsTrue() {
assertThat(transform("allElementsTrue(a, new int[]{4,5,6})"))
- .isEqualTo(Document.parse("{ \"$allElementsTrue\" : [ \"$a\" , [ 4 , 5 , 6]]}"));
+ .isEqualTo("{ \"$allElementsTrue\" : [ \"$a\" , [ 4 , 5 , 6]]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceCmp() {
- assertThat(transform("cmp(a, 250)")).isEqualTo(Document.parse("{ \"$cmp\" : [ \"$a\" , 250]}"));
+ assertThat(transform("cmp(a, 250)")).isEqualTo("{ \"$cmp\" : [ \"$a\" , 250]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceEq() {
- assertThat(transform("eq(a, 250)")).isEqualTo(Document.parse("{ \"$eq\" : [ \"$a\" , 250]}"));
+ assertThat(transform("eq(a, 250)")).isEqualTo("{ \"$eq\" : [ \"$a\" , 250]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceGt() {
- assertThat(transform("gt(a, 250)")).isEqualTo(Document.parse("{ \"$gt\" : [ \"$a\" , 250]}"));
+ assertThat(transform("gt(a, 250)")).isEqualTo("{ \"$gt\" : [ \"$a\" , 250]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceGte() {
- assertThat(transform("gte(a, 250)")).isEqualTo(Document.parse("{ \"$gte\" : [ \"$a\" , 250]}"));
+ assertThat(transform("gte(a, 250)")).isEqualTo("{ \"$gte\" : [ \"$a\" , 250]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceLt() {
- assertThat(transform("lt(a, 250)")).isEqualTo(Document.parse("{ \"$lt\" : [ \"$a\" , 250]}"));
+ assertThat(transform("lt(a, 250)")).isEqualTo("{ \"$lt\" : [ \"$a\" , 250]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceLte() {
- assertThat(transform("lte(a, 250)")).isEqualTo(Document.parse("{ \"$lte\" : [ \"$a\" , 250]}"));
+ assertThat(transform("lte(a, 250)")).isEqualTo("{ \"$lte\" : [ \"$a\" , 250]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNe() {
- assertThat(transform("ne(a, 250)")).isEqualTo(Document.parse("{ \"$ne\" : [ \"$a\" , 250]}"));
+ assertThat(transform("ne(a, 250)")).isEqualTo("{ \"$ne\" : [ \"$a\" , 250]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceAbs() {
- assertThat(transform("abs(1)")).isEqualTo(Document.parse("{ \"$abs\" : 1}"));
+ assertThat(transform("abs(1)")).isEqualTo("{ \"$abs\" : 1}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceAdd() {
- assertThat(transform("add(a, 250)")).isEqualTo(Document.parse("{ \"$add\" : [ \"$a\" , 250]}"));
+ assertThat(transform("add(a, 250)")).isEqualTo("{ \"$add\" : [ \"$a\" , 250]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceCeil() {
- assertThat(transform("ceil(7.8)")).isEqualTo(Document.parse("{ \"$ceil\" : 7.8}"));
+ assertThat(transform("ceil(7.8)")).isEqualTo("{ \"$ceil\" : 7.8}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceDivide() {
- assertThat(transform("divide(a, 250)")).isEqualTo(Document.parse("{ \"$divide\" : [ \"$a\" , 250]}"));
+ assertThat(transform("divide(a, 250)")).isEqualTo("{ \"$divide\" : [ \"$a\" , 250]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceExp() {
- assertThat(transform("exp(2)")).isEqualTo(Document.parse("{ \"$exp\" : 2}"));
+ assertThat(transform("exp(2)")).isEqualTo("{ \"$exp\" : 2}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceFloor() {
- assertThat(transform("floor(2)")).isEqualTo(Document.parse("{ \"$floor\" : 2}"));
+ assertThat(transform("floor(2)")).isEqualTo("{ \"$floor\" : 2}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceLn() {
- assertThat(transform("ln(2)")).isEqualTo(Document.parse("{ \"$ln\" : 2}"));
+ assertThat(transform("ln(2)")).isEqualTo("{ \"$ln\" : 2}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceLog() {
- assertThat(transform("log(100, 10)")).isEqualTo(Document.parse("{ \"$log\" : [ 100 , 10]}"));
+ assertThat(transform("log(100, 10)")).isEqualTo("{ \"$log\" : [ 100 , 10]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceLog10() {
- assertThat(transform("log10(100)")).isEqualTo(Document.parse("{ \"$log10\" : 100}"));
+ assertThat(transform("log10(100)")).isEqualTo("{ \"$log10\" : 100}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeMod() {
- assertThat(transform("mod(a, b)")).isEqualTo(Document.parse("{ \"$mod\" : [ \"$a\" , \"$b\"]}"));
+ assertThat(transform("mod(a, b)")).isEqualTo("{ \"$mod\" : [ \"$a\" , \"$b\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeMultiply() {
- assertThat(transform("multiply(a, b)")).isEqualTo(Document.parse("{ \"$multiply\" : [ \"$a\" , \"$b\"]}"));
+ assertThat(transform("multiply(a, b)")).isEqualTo("{ \"$multiply\" : [ \"$a\" , \"$b\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodePow() {
- assertThat(transform("pow(a, 2)")).isEqualTo(Document.parse("{ \"$pow\" : [ \"$a\" , 2]}"));
+ assertThat(transform("pow(a, 2)")).isEqualTo("{ \"$pow\" : [ \"$a\" , 2]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceSqrt() {
- assertThat(transform("sqrt(2)")).isEqualTo(Document.parse("{ \"$sqrt\" : 2}"));
+ assertThat(transform("sqrt(2)")).isEqualTo("{ \"$sqrt\" : 2}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeSubtract() {
- assertThat(transform("subtract(a, b)")).isEqualTo(Document.parse("{ \"$subtract\" : [ \"$a\" , \"$b\"]}"));
+ assertThat(transform("subtract(a, b)")).isEqualTo("{ \"$subtract\" : [ \"$a\" , \"$b\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceTrunc() {
- assertThat(transform("trunc(2.1)")).isEqualTo(Document.parse("{ \"$trunc\" : 2.1}"));
+ assertThat(transform("trunc(2.1)")).isEqualTo("{ \"$trunc\" : 2.1}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeConcat() {
- assertThat(transform("concat(a, b, 'c')")).isEqualTo(Document.parse("{ \"$concat\" : [ \"$a\" , \"$b\" , \"c\"]}"));
+ assertThat(transform("concat(a, b, 'c')")).isEqualTo("{ \"$concat\" : [ \"$a\" , \"$b\" , \"c\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeSubstrc() {
- assertThat(transform("substr(a, 0, 1)")).isEqualTo(Document.parse("{ \"$substr\" : [ \"$a\" , 0 , 1]}"));
+ assertThat(transform("substr(a, 0, 1)")).isEqualTo("{ \"$substr\" : [ \"$a\" , 0 , 1]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceToLower() {
- assertThat(transform("toLower(a)")).isEqualTo(Document.parse("{ \"$toLower\" : \"$a\"}"));
+ assertThat(transform("toLower(a)")).isEqualTo("{ \"$toLower\" : \"$a\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceToUpper() {
- assertThat(transform("toUpper(a)")).isEqualTo(Document.parse("{ \"$toUpper\" : \"$a\"}"));
+ assertThat(transform("toUpper(a)")).isEqualTo("{ \"$toUpper\" : \"$a\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeStrCaseCmp() {
- assertThat(transform("strcasecmp(a, b)")).isEqualTo(Document.parse("{ \"$strcasecmp\" : [ \"$a\" , \"$b\"]}"));
+ assertThat(transform("strcasecmp(a, b)")).isEqualTo("{ \"$strcasecmp\" : [ \"$a\" , \"$b\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceMeta() {
- assertThat(transform("meta('textScore')")).isEqualTo(Document.parse("{ \"$meta\" : \"textScore\"}"));
+ assertThat(transform("meta('textScore')")).isEqualTo("{ \"$meta\" : \"textScore\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeArrayElemAt() {
- assertThat(transform("arrayElemAt(a, 10)")).isEqualTo(Document.parse("{ \"$arrayElemAt\" : [ \"$a\" , 10]}"));
+ assertThat(transform("arrayElemAt(a, 10)")).isEqualTo("{ \"$arrayElemAt\" : [ \"$a\" , 10]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeConcatArrays() {
assertThat(transform("concatArrays(a, b, c)"))
- .isEqualTo(Document.parse("{ \"$concatArrays\" : [ \"$a\" , \"$b\" , \"$c\"]}"));
+ .isEqualTo("{ \"$concatArrays\" : [ \"$a\" , \"$b\" , \"$c\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeFilter() {
- assertThat(transform("filter(a, 'num', '$$num' > 10)")).isEqualTo(Document.parse(
- "{ \"$filter\" : { \"input\" : \"$a\" , \"as\" : \"num\" , \"cond\" : { \"$gt\" : [ \"$$num\" , 10]}}}"));
+ assertThat(transform("filter(a, 'num', '$$num' > 10)")).isEqualTo(
+ "{ \"$filter\" : { \"input\" : \"$a\" , \"as\" : \"num\" , \"cond\" : { \"$gt\" : [ \"$$num\" , 10]}}}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceIsArray() {
- assertThat(transform("isArray(a)")).isEqualTo(Document.parse("{ \"$isArray\" : \"$a\"}"));
+ assertThat(transform("isArray(a)")).isEqualTo("{ \"$isArray\" : \"$a\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceIsSize() {
- assertThat(transform("size(a)")).isEqualTo(Document.parse("{ \"$size\" : \"$a\"}"));
+ assertThat(transform("size(a)")).isEqualTo("{ \"$size\" : \"$a\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeSlice() {
- assertThat(transform("slice(a, 10)")).isEqualTo(Document.parse("{ \"$slice\" : [ \"$a\" , 10]}"));
+ assertThat(transform("slice(a, 10)")).isEqualTo("{ \"$slice\" : [ \"$a\" , 10]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeMap() {
- assertThat(transform("map(quizzes, 'grade', '$$grade' + 2)")).isEqualTo(Document.parse(
- "{ \"$map\" : { \"input\" : \"$quizzes\" , \"as\" : \"grade\" , \"in\" : { \"$add\" : [ \"$$grade\" , 2]}}}"));
+ assertThat(transform("map(quizzes, 'grade', '$$grade' + 2)")).isEqualTo(
+ "{ \"$map\" : { \"input\" : \"$quizzes\" , \"as\" : \"grade\" , \"in\" : { \"$add\" : [ \"$$grade\" , 2]}}}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeLet() {
- assertThat(transform("let({low:1, high:'$$low'}, gt('$$low', '$$high'))")).isEqualTo(Document.parse(
- "{ \"$let\" : { \"vars\" : { \"low\" : 1 , \"high\" : \"$$low\"} , \"in\" : { \"$gt\" : [ \"$$low\" , \"$$high\"]}}}"));
+ assertThat(transform("let({low:1, high:'$$low'}, gt('$$low', '$$high'))")).isEqualTo(
+ "{ \"$let\" : { \"vars\" : { \"low\" : 1 , \"high\" : \"$$low\"} , \"in\" : { \"$gt\" : [ \"$$low\" , \"$$high\"]}}}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceLiteral() {
- assertThat(transform("literal($1)")).isEqualTo(Document.parse("{ \"$literal\" : \"$1\"}"));
+ assertThat(transform("literal($1)")).isEqualTo("{ \"$literal\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceDayOfYear() {
- assertThat(transform("dayOfYear($1)")).isEqualTo(Document.parse("{ \"$dayOfYear\" : \"$1\"}"));
+ assertThat(transform("dayOfYear($1)")).isEqualTo("{ \"$dayOfYear\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceDayOfMonth() {
- assertThat(transform("dayOfMonth($1)")).isEqualTo(Document.parse("{ \"$dayOfMonth\" : \"$1\"}"));
+ assertThat(transform("dayOfMonth($1)")).isEqualTo("{ \"$dayOfMonth\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceDayOfWeek() {
- assertThat(transform("dayOfWeek($1)")).isEqualTo(Document.parse("{ \"$dayOfWeek\" : \"$1\"}"));
+ assertThat(transform("dayOfWeek($1)")).isEqualTo("{ \"$dayOfWeek\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceYear() {
- assertThat(transform("year($1)")).isEqualTo(Document.parse("{ \"$year\" : \"$1\"}"));
+ assertThat(transform("year($1)")).isEqualTo("{ \"$year\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceMonth() {
- assertThat(transform("month($1)")).isEqualTo(Document.parse("{ \"$month\" : \"$1\"}"));
+ assertThat(transform("month($1)")).isEqualTo("{ \"$month\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceWeek() {
- assertThat(transform("week($1)")).isEqualTo(Document.parse("{ \"$week\" : \"$1\"}"));
+ assertThat(transform("week($1)")).isEqualTo("{ \"$week\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceHour() {
- assertThat(transform("hour($1)")).isEqualTo(Document.parse("{ \"$hour\" : \"$1\"}"));
+ assertThat(transform("hour($1)")).isEqualTo("{ \"$hour\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceMinute() {
- assertThat(transform("minute($1)")).isEqualTo(Document.parse("{ \"$minute\" : \"$1\"}"));
+ assertThat(transform("minute($1)")).isEqualTo("{ \"$minute\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceSecond() {
- assertThat(transform("second($1)")).isEqualTo(Document.parse("{ \"$second\" : \"$1\"}"));
+ assertThat(transform("second($1)")).isEqualTo("{ \"$second\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceMillisecond() {
- assertThat(transform("millisecond($1)")).isEqualTo(Document.parse("{ \"$millisecond\" : \"$1\"}"));
+ assertThat(transform("millisecond($1)")).isEqualTo("{ \"$millisecond\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceDateToString() {
assertThat(transform("dateToString('%Y-%m-%d', $date)"))
- .isEqualTo(Document.parse("{ \"$dateToString\" : { \"format\" : \"%Y-%m-%d\" , \"date\" : \"$date\"}}"));
+ .isEqualTo("{ \"$dateToString\" : { \"format\" : \"%Y-%m-%d\" , \"date\" : \"$date\"}}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceCond() {
assertThat(transform("cond(qty > 250, 30, 20)")).isEqualTo(
- Document.parse("{ \"$cond\" : { \"if\" : { \"$gt\" : [ \"$qty\" , 250]} , \"then\" : 30 , \"else\" : 20}}"));
+ "{ \"$cond\" : { \"if\" : { \"$gt\" : [ \"$qty\" , 250]} , \"then\" : 30 , \"else\" : 20}}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeIfNull() {
- assertThat(transform("ifNull(a, 10)")).isEqualTo(Document.parse("{ \"$ifNull\" : [ \"$a\" , 10]}"));
+ assertThat(transform("ifNull(a, 10)")).isEqualTo("{ \"$ifNull\" : [ \"$a\" , 10]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeSum() {
- assertThat(transform("sum(a, b)")).isEqualTo(Document.parse("{ \"$sum\" : [ \"$a\" , \"$b\"]}"));
+ assertThat(transform("sum(a, b)")).isEqualTo("{ \"$sum\" : [ \"$a\" , \"$b\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeAvg() {
- assertThat(transform("avg(a, b)")).isEqualTo(Document.parse("{ \"$avg\" : [ \"$a\" , \"$b\"]}"));
+ assertThat(transform("avg(a, b)")).isEqualTo("{ \"$avg\" : [ \"$a\" , \"$b\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceFirst() {
- assertThat(transform("first($1)")).isEqualTo(Document.parse("{ \"$first\" : \"$1\"}"));
+ assertThat(transform("first($1)")).isEqualTo("{ \"$first\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceLast() {
- assertThat(transform("last($1)")).isEqualTo(Document.parse("{ \"$last\" : \"$1\"}"));
+ assertThat(transform("last($1)")).isEqualTo("{ \"$last\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeMax() {
- assertThat(transform("max(a, b)")).isEqualTo(Document.parse("{ \"$max\" : [ \"$a\" , \"$b\"]}"));
+ assertThat(transform("max(a, b)")).isEqualTo("{ \"$max\" : [ \"$a\" , \"$b\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeMin() {
- assertThat(transform("min(a, b)")).isEqualTo(Document.parse("{ \"$min\" : [ \"$a\" , \"$b\"]}"));
+ assertThat(transform("min(a, b)")).isEqualTo("{ \"$min\" : [ \"$a\" , \"$b\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodePush() {
assertThat(transform("push({'item':'$item', 'quantity':'$qty'})"))
- .isEqualTo(Document.parse("{ \"$push\" : { \"item\" : \"$item\" , \"quantity\" : \"$qty\"}}"));
+ .isEqualTo("{ \"$push\" : { \"item\" : \"$item\" , \"quantity\" : \"$qty\"}}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceAddToSet() {
- assertThat(transform("addToSet($1)")).isEqualTo(Document.parse("{ \"$addToSet\" : \"$1\"}"));
+ assertThat(transform("addToSet($1)")).isEqualTo("{ \"$addToSet\" : \"$1\"}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeStdDevPop() {
assertThat(transform("stdDevPop(scores.score)"))
- .isEqualTo(Document.parse("{ \"$stdDevPop\" : [ \"$scores.score\"]}"));
+ .isEqualTo("{ \"$stdDevPop\" : [ \"$scores.score\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderMethodReferenceNodeStdDevSamp() {
- assertThat(transform("stdDevSamp(age)")).isEqualTo(Document.parse("{ \"$stdDevSamp\" : [ \"$age\"]}"));
+ assertThat(transform("stdDevSamp(age)")).isEqualTo("{ \"$stdDevSamp\" : [ \"$age\"]}");
}
@Test // DATAMONGO-1530
void shouldRenderOperationNodeEq() {
- assertThat(transform("foo == 10")).isEqualTo(Document.parse("{ \"$eq\" : [ \"$foo\" , 10]}"));
+ assertThat(transform("foo == 10")).isEqualTo("{ \"$eq\" : [ \"$foo\" , 10]}");
}
@Test // DATAMONGO-1530
void shouldRenderOperationNodeNe() {
- assertThat(transform("foo != 10")).isEqualTo(Document.parse("{ \"$ne\" : [ \"$foo\" , 10]}"));
+ assertThat(transform("foo != 10")).isEqualTo("{ \"$ne\" : [ \"$foo\" , 10]}");
}
@Test // DATAMONGO-1530
void shouldRenderOperationNodeGt() {
- assertThat(transform("foo > 10")).isEqualTo(Document.parse("{ \"$gt\" : [ \"$foo\" , 10]}"));
+ assertThat(transform("foo > 10")).isEqualTo("{ \"$gt\" : [ \"$foo\" , 10]}");
}
@Test // DATAMONGO-1530
void shouldRenderOperationNodeGte() {
- assertThat(transform("foo >= 10")).isEqualTo(Document.parse("{ \"$gte\" : [ \"$foo\" , 10]}"));
+ assertThat(transform("foo >= 10")).isEqualTo("{ \"$gte\" : [ \"$foo\" , 10]}");
}
@Test // DATAMONGO-1530
void shouldRenderOperationNodeLt() {
- assertThat(transform("foo < 10")).isEqualTo(Document.parse("{ \"$lt\" : [ \"$foo\" , 10]}"));
+ assertThat(transform("foo < 10")).isEqualTo("{ \"$lt\" : [ \"$foo\" , 10]}");
}
@Test // DATAMONGO-1530
void shouldRenderOperationNodeLte() {
- assertThat(transform("foo <= 10")).isEqualTo(Document.parse("{ \"$lte\" : [ \"$foo\" , 10]}"));
+ assertThat(transform("foo <= 10")).isEqualTo("{ \"$lte\" : [ \"$foo\" , 10]}");
}
@Test // DATAMONGO-1530
void shouldRenderOperationNodePow() {
- assertThat(transform("foo^2")).isEqualTo(Document.parse("{ \"$pow\" : [ \"$foo\" , 2]}"));
+ assertThat(transform("foo^2")).isEqualTo("{ \"$pow\" : [ \"$foo\" , 2]}");
}
@Test // DATAMONGO-1530
void shouldRenderOperationNodeOr() {
- assertThat(transform("true || false")).isEqualTo(Document.parse("{ \"$or\" : [ true , false]}"));
+ assertThat(transform("true || false")).isEqualTo("{ \"$or\" : [ true , false]}");
}
@Test // DATAMONGO-1530
void shouldRenderComplexOperationNodeOr() {
assertThat(transform("1+2 || concat(a, b) || true")).isEqualTo(
- Document.parse("{ \"$or\" : [ { \"$add\" : [ 1 , 2]} , { \"$concat\" : [ \"$a\" , \"$b\"]} , true]}"));
+ "{ \"$or\" : [ { \"$add\" : [ 1 , 2]} , { \"$concat\" : [ \"$a\" , \"$b\"]} , true]}");
}
@Test // DATAMONGO-1530
void shouldRenderOperationNodeAnd() {
- assertThat(transform("true && false")).isEqualTo(Document.parse("{ \"$and\" : [ true , false]}"));
+ assertThat(transform("true && false")).isEqualTo("{ \"$and\" : [ true , false]}");
}
@Test // DATAMONGO-1530
void shouldRenderComplexOperationNodeAnd() {
assertThat(transform("1+2 && concat(a, b) && true")).isEqualTo(
- Document.parse("{ \"$and\" : [ { \"$add\" : [ 1 , 2]} , { \"$concat\" : [ \"$a\" , \"$b\"]} , true]}"));
+ "{ \"$and\" : [ { \"$add\" : [ 1 , 2]} , { \"$concat\" : [ \"$a\" , \"$b\"]} , true]}");
}
@Test // DATAMONGO-1530
void shouldRenderNotCorrectly() {
- assertThat(transform("!true")).isEqualTo(Document.parse("{ \"$not\" : [ true]}"));
+ assertThat(transform("!true")).isEqualTo("{ \"$not\" : [ true]}");
}
@Test // DATAMONGO-1530
void shouldRenderComplexNotCorrectly() {
- assertThat(transform("!(foo > 10)")).isEqualTo(Document.parse("{ \"$not\" : [ { \"$gt\" : [ \"$foo\" , 10]}]}"));
+ assertThat(transform("!(foo > 10)")).isEqualTo("{ \"$not\" : [ { \"$gt\" : [ \"$foo\" , 10]}]}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodReferenceIndexOfBytes() {
assertThat(transform("indexOfBytes(item, 'foo')"))
- .isEqualTo(Document.parse("{ \"$indexOfBytes\" : [ \"$item\" , \"foo\"]}"));
+ .isEqualTo("{ \"$indexOfBytes\" : [ \"$item\" , \"foo\"]}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodReferenceIndexOfCP() {
assertThat(transform("indexOfCP(item, 'foo')"))
- .isEqualTo(Document.parse("{ \"$indexOfCP\" : [ \"$item\" , \"foo\"]}"));
+ .isEqualTo("{ \"$indexOfCP\" : [ \"$item\" , \"foo\"]}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodReferenceSplit() {
- assertThat(transform("split(item, ',')")).isEqualTo(Document.parse("{ \"$split\" : [ \"$item\" , \",\"]}"));
+ assertThat(transform("split(item, ',')")).isEqualTo("{ \"$split\" : [ \"$item\" , \",\"]}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodReferenceStrLenBytes() {
- assertThat(transform("strLenBytes(item)")).isEqualTo(Document.parse("{ \"$strLenBytes\" : \"$item\"}"));
+ assertThat(transform("strLenBytes(item)")).isEqualTo("{ \"$strLenBytes\" : \"$item\"}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodReferenceStrLenCP() {
- assertThat(transform("strLenCP(item)")).isEqualTo(Document.parse("{ \"$strLenCP\" : \"$item\"}"));
+ assertThat(transform("strLenCP(item)")).isEqualTo("{ \"$strLenCP\" : \"$item\"}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodSubstrCP() {
- assertThat(transform("substrCP(item, 0, 5)")).isEqualTo(Document.parse("{ \"$substrCP\" : [ \"$item\" , 0 , 5]}"));
+ assertThat(transform("substrCP(item, 0, 5)")).isEqualTo("{ \"$substrCP\" : [ \"$item\" , 0 , 5]}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodReferenceReverseArray() {
- assertThat(transform("reverseArray(array)")).isEqualTo(Document.parse("{ \"$reverseArray\" : \"$array\"}"));
+ assertThat(transform("reverseArray(array)")).isEqualTo("{ \"$reverseArray\" : \"$array\"}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodReferenceReduce() {
- assertThat(transform("reduce(field, '', {'$concat':{'$$value','$$this'}})")).isEqualTo(Document.parse(
- "{ \"$reduce\" : { \"input\" : \"$field\" , \"initialValue\" : \"\" , \"in\" : { \"$concat\" : [ \"$$value\" , \"$$this\"]}}}"));
+ assertThat(transform("reduce(field, '', {'$concat':{'$$value','$$this'}})")).isEqualTo(
+ "{ \"$reduce\" : { \"input\" : \"$field\" , \"initialValue\" : \"\" , \"in\" : { \"$concat\" : [ \"$$value\" , \"$$this\"]}}}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodReferenceZip() {
assertThat(transform("zip(new String[]{'$array1', '$array2'})"))
- .isEqualTo(Document.parse("{ \"$zip\" : { \"inputs\" : [ \"$array1\" , \"$array2\"]}}"));
+ .isEqualTo("{ \"$zip\" : { \"inputs\" : [ \"$array1\" , \"$array2\"]}}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodReferenceZipWithOptionalArgs() {
- assertThat(transform("zip(new String[]{'$array1', '$array2'}, true, new int[]{1,2})")).isEqualTo(Document.parse(
- "{ \"$zip\" : { \"inputs\" : [ \"$array1\" , \"$array2\"] , \"useLongestLength\" : true , \"defaults\" : [ 1 , 2]}}"));
+ assertThat(transform("zip(new String[]{'$array1', '$array2'}, true, new int[]{1,2})")).isEqualTo(
+ "{ \"$zip\" : { \"inputs\" : [ \"$array1\" , \"$array2\"] , \"useLongestLength\" : true , \"defaults\" : [ 1 , 2]}}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodIn() {
- assertThat(transform("in('item', array)")).isEqualTo(Document.parse("{ \"$in\" : [ \"item\" , \"$array\"]}"));
+ assertThat(transform("in('item', array)")).isEqualTo("{ \"$in\" : [ \"item\" , \"$array\"]}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodRefereneIsoDayOfWeek() {
- assertThat(transform("isoDayOfWeek(date)")).isEqualTo(Document.parse("{ \"$isoDayOfWeek\" : \"$date\"}"));
+ assertThat(transform("isoDayOfWeek(date)")).isEqualTo("{ \"$isoDayOfWeek\" : \"$date\"}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodRefereneIsoWeek() {
- assertThat(transform("isoWeek(date)")).isEqualTo(Document.parse("{ \"$isoWeek\" : \"$date\"}"));
+ assertThat(transform("isoWeek(date)")).isEqualTo("{ \"$isoWeek\" : \"$date\"}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodRefereneIsoWeekYear() {
- assertThat(transform("isoWeekYear(date)")).isEqualTo(Document.parse("{ \"$isoWeekYear\" : \"$date\"}"));
+ assertThat(transform("isoWeekYear(date)")).isEqualTo("{ \"$isoWeekYear\" : \"$date\"}");
}
@Test // DATAMONGO-1548
void shouldRenderMethodRefereneType() {
- assertThat(transform("type(a)")).isEqualTo(Document.parse("{ \"$type\" : \"$a\"}"));
+ assertThat(transform("type(a)")).isEqualTo("{ \"$type\" : \"$a\"}");
}
@Test // DATAMONGO-2077
void shouldRenderArrayToObjectWithFieldReference() {
- assertThat(transform("arrayToObject(field)")).isEqualTo(Document.parse("{ \"$arrayToObject\" : \"$field\"}"));
+ assertThat(transform("arrayToObject(field)")).isEqualTo("{ \"$arrayToObject\" : \"$field\"}");
}
@Test // DATAMONGO-2077
void shouldRenderArrayToObjectWithArray() {
assertThat(transform("arrayToObject(new String[]{'key', 'value'})"))
- .isEqualTo(Document.parse("{ \"$arrayToObject\" : [\"key\", \"value\"]}"));
+ .isEqualTo("{ \"$arrayToObject\" : [\"key\", \"value\"]}");
}
@Test // DATAMONGO-2077
void shouldRenderObjectToArrayWithFieldReference() {
- assertThat(transform("objectToArray(field)")).isEqualTo(Document.parse("{ \"$objectToArray\" : \"$field\"}"));
+ assertThat(transform("objectToArray(field)")).isEqualTo("{ \"$objectToArray\" : \"$field\"}");
}
@Test // DATAMONGO-2077
void shouldRenderMergeObjects() {
assertThat(transform("mergeObjects(field1, $$ROOT)"))
- .isEqualTo(Document.parse("{ \"$mergeObjects\" : [\"$field1\", \"$$ROOT\"]}"));
+ .isEqualTo("{ \"$mergeObjects\" : [\"$field1\", \"$$ROOT\"]}");
}
@Test // DATAMONGO-2077
void shouldRenderTrimWithoutChars() {
- assertThat(transform("trim(field)")).isEqualTo(Document.parse("{ \"$trim\" : {\"input\" : \"$field\"}}"));
+ assertThat(transform("trim(field)")).isEqualTo("{ \"$trim\" : {\"input\" : \"$field\"}}");
}
@Test // DATAMONGO-2077
void shouldRenderTrimWithChars() {
assertThat(transform("trim(field, 'ie')"))
- .isEqualTo(Document.parse("{ \"$trim\" : {\"input\" : \"$field\", \"chars\" : \"ie\" }}"));
+ .isEqualTo("{ \"$trim\" : {\"input\" : \"$field\", \"chars\" : \"ie\" }}");
}
@Test // DATAMONGO-2077
void shouldRenderTrimWithCharsFromFieldReference() {
assertThat(transform("trim(field1, field2)"))
- .isEqualTo(Document.parse("{ \"$trim\" : {\"input\" : \"$field1\", \"chars\" : \"$field2\" }}"));
+ .isEqualTo("{ \"$trim\" : {\"input\" : \"$field1\", \"chars\" : \"$field2\" }}");
}
@Test // DATAMONGO-2077
void shouldRenderLtrimWithoutChars() {
- assertThat(transform("ltrim(field)")).isEqualTo(Document.parse("{ \"$ltrim\" : {\"input\" : \"$field\"}}"));
+ assertThat(transform("ltrim(field)")).isEqualTo("{ \"$ltrim\" : {\"input\" : \"$field\"}}");
}
@Test // DATAMONGO-2077
void shouldRenderLtrimWithChars() {
assertThat(transform("ltrim(field, 'ie')"))
- .isEqualTo(Document.parse("{ \"$ltrim\" : {\"input\" : \"$field\", \"chars\" : \"ie\" }}"));
+ .isEqualTo("{ \"$ltrim\" : {\"input\" : \"$field\", \"chars\" : \"ie\" }}");
}
@Test // DATAMONGO-2077
void shouldRenderLtrimWithCharsFromFieldReference() {
assertThat(transform("ltrim(field1, field2)"))
- .isEqualTo(Document.parse("{ \"$ltrim\" : {\"input\" : \"$field1\", \"chars\" : \"$field2\" }}"));
+ .isEqualTo("{ \"$ltrim\" : {\"input\" : \"$field1\", \"chars\" : \"$field2\" }}");
}
@Test // DATAMONGO-2077
void shouldRenderRtrimWithoutChars() {
- assertThat(transform("rtrim(field)")).isEqualTo(Document.parse("{ \"$rtrim\" : {\"input\" : \"$field\"}}"));
+ assertThat(transform("rtrim(field)")).isEqualTo("{ \"$rtrim\" : {\"input\" : \"$field\"}}");
}
@Test // DATAMONGO-2077
void shouldRenderRtrimWithChars() {
assertThat(transform("rtrim(field, 'ie')"))
- .isEqualTo(Document.parse("{ \"$rtrim\" : {\"input\" : \"$field\", \"chars\" : \"ie\" }}"));
+ .isEqualTo("{ \"$rtrim\" : {\"input\" : \"$field\", \"chars\" : \"ie\" }}");
}
@Test // DATAMONGO-2077
void shouldRenderRtrimWithCharsFromFieldReference() {
assertThat(transform("rtrim(field1, field2)"))
- .isEqualTo(Document.parse("{ \"$rtrim\" : {\"input\" : \"$field1\", \"chars\" : \"$field2\" }}"));
+ .isEqualTo("{ \"$rtrim\" : {\"input\" : \"$field1\", \"chars\" : \"$field2\" }}");
}
@Test // DATAMONGO-2077
void shouldRenderConvertWithoutOptionalParameters() {
assertThat(transform("convert(field, 'string')"))
- .isEqualTo(Document.parse("{ \"$convert\" : {\"input\" : \"$field\", \"to\" : \"string\" }}"));
+ .isEqualTo("{ \"$convert\" : {\"input\" : \"$field\", \"to\" : \"string\" }}");
}
@Test // DATAMONGO-2077
void shouldRenderConvertWithOnError() {
- assertThat(transform("convert(field, 'int', 'Not an integer.')")).isEqualTo(Document
- .parse("{ \"$convert\" : {\"input\" : \"$field\", \"to\" : \"int\", \"onError\" : \"Not an integer.\" }}"));
+ assertThat(transform("convert(field, 'int', 'Not an integer.')"))
+ .isEqualTo("{ \"$convert\" : {\"input\" : \"$field\", \"to\" : \"int\", \"onError\" : \"Not an integer.\" }}");
}
@Test // DATAMONGO-2077
void shouldRenderConvertWithOnErrorOnNull() {
- assertThat(transform("convert(field, 'int', 'Not an integer.', -1)")).isEqualTo(Document.parse(
- "{ \"$convert\" : {\"input\" : \"$field\", \"to\" : \"int\", \"onError\" : \"Not an integer.\", \"onNull\" : -1 }}"));
+ assertThat(transform("convert(field, 'int', 'Not an integer.', -1)")).isEqualTo(
+ "{ \"$convert\" : {\"input\" : \"$field\", \"to\" : \"int\", \"onError\" : \"Not an integer.\", \"onNull\" : -1 }}");
}
@Test // DATAMONGO-2077
void shouldRenderToBool() {
- assertThat(transform("toBool(field)")).isEqualTo(Document.parse("{ \"$toBool\" : \"$field\"}"));
+ assertThat(transform("toBool(field)")).isEqualTo("{ \"$toBool\" : \"$field\"}");
}
@Test // DATAMONGO-2077
void shouldRenderToDate() {
- assertThat(transform("toDate(field)")).isEqualTo(Document.parse("{ \"$toDate\" : \"$field\"}"));
+ assertThat(transform("toDate(field)")).isEqualTo("{ \"$toDate\" : \"$field\"}");
}
@Test // DATAMONGO-2077
void shouldRenderToDecimal() {
- assertThat(transform("toDecimal(field)")).isEqualTo(Document.parse("{ \"$toDecimal\" : \"$field\"}"));
+ assertThat(transform("toDecimal(field)")).isEqualTo("{ \"$toDecimal\" : \"$field\"}");
}
@Test // DATAMONGO-2077
void shouldRenderToDouble() {
- assertThat(transform("toDouble(field)")).isEqualTo(Document.parse("{ \"$toDouble\" : \"$field\"}"));
+ assertThat(transform("toDouble(field)")).isEqualTo("{ \"$toDouble\" : \"$field\"}");
}
@Test // DATAMONGO-2077
void shouldRenderToInt() {
- assertThat(transform("toInt(field)")).isEqualTo(Document.parse("{ \"$toInt\" : \"$field\"}"));
+ assertThat(transform("toInt(field)")).isEqualTo("{ \"$toInt\" : \"$field\"}");
}
@Test // DATAMONGO-2077
void shouldRenderToLong() {
- assertThat(transform("toLong(field)")).isEqualTo(Document.parse("{ \"$toLong\" : \"$field\"}"));
+ assertThat(transform("toLong(field)")).isEqualTo("{ \"$toLong\" : \"$field\"}");
}
@Test // DATAMONGO-2077
void shouldRenderToObjectId() {
- assertThat(transform("toObjectId(field)")).isEqualTo(Document.parse("{ \"$toObjectId\" : \"$field\"}"));
+ assertThat(transform("toObjectId(field)")).isEqualTo("{ \"$toObjectId\" : \"$field\"}");
}
@Test // DATAMONGO-2077
void shouldRenderToString() {
- assertThat(transform("toString(field)")).isEqualTo(Document.parse("{ \"$toString\" : \"$field\"}"));
+ assertThat(transform("toString(field)")).isEqualTo("{ \"$toString\" : \"$field\"}");
}
@Test // DATAMONGO-2077
void shouldRenderDateFromStringWithoutOptionalParameters() {
assertThat(transform("dateFromString(field)"))
- .isEqualTo(Document.parse("{ \"$dateFromString\" : {\"dateString\" : \"$field\" }}"));
+ .isEqualTo("{ \"$dateFromString\" : {\"dateString\" : \"$field\" }}");
}
@Test // DATAMONGO-2077
void shouldRenderDateFromStringWithFormat() {
assertThat(transform("dateFromString(field, 'DD-MM-YYYY')")).isEqualTo(
- Document.parse("{ \"$dateFromString\" : {\"dateString\" : \"$field\", \"format\" : \"DD-MM-YYYY\" }}"));
+ "{ \"$dateFromString\" : {\"dateString\" : \"$field\", \"format\" : \"DD-MM-YYYY\" }}");
}
@Test // DATAMONGO-2077
void shouldRenderDateFromStringWithFormatAndTimezone() {
- assertThat(transform("dateFromString(field, 'DD-MM-YYYY', 'UTC')")).isEqualTo(Document.parse(
- "{ \"$dateFromString\" : {\"dateString\" : \"$field\", \"format\" : \"DD-MM-YYYY\", \"timezone\" : \"UTC\" }}"));
+ assertThat(transform("dateFromString(field, 'DD-MM-YYYY', 'UTC')")).isEqualTo(
+ "{ \"$dateFromString\" : {\"dateString\" : \"$field\", \"format\" : \"DD-MM-YYYY\", \"timezone\" : \"UTC\" }}");
}
@Test // DATAMONGO-2077
void shouldRenderDateFromStringWithFormatTimezoneAndOnError() {
- assertThat(transform("dateFromString(field, 'DD-MM-YYYY', 'UTC', -1)")).isEqualTo(Document.parse(
- "{ \"$dateFromString\" : {\"dateString\" : \"$field\", \"format\" : \"DD-MM-YYYY\", \"timezone\" : \"UTC\", \"onError\" : -1 }}"));
+ assertThat(transform("dateFromString(field, 'DD-MM-YYYY', 'UTC', -1)")).isEqualTo(
+ "{ \"$dateFromString\" : {\"dateString\" : \"$field\", \"format\" : \"DD-MM-YYYY\", \"timezone\" : \"UTC\", \"onError\" : -1 }}");
}
@Test // DATAMONGO-2077
void shouldRenderDateFromStringWithFormatTimezoneOnErrorAndOnNull() {
- assertThat(transform("dateFromString(field, 'DD-MM-YYYY', 'UTC', -1, -2)")).isEqualTo(Document.parse(
- "{ \"$dateFromString\" : {\"dateString\" : \"$field\", \"format\" : \"DD-MM-YYYY\", \"timezone\" : \"UTC\", \"onError\" : -1, \"onNull\" : -2}}"));
+ assertThat(transform("dateFromString(field, 'DD-MM-YYYY', 'UTC', -1, -2)")).isEqualTo(
+ "{ \"$dateFromString\" : {\"dateString\" : \"$field\", \"format\" : \"DD-MM-YYYY\", \"timezone\" : \"UTC\", \"onError\" : -1, \"onNull\" : -2}}");
}
@Test // DATAMONGO-2077, DATAMONGO-2671
void shouldRenderDateFromParts() {
- assertThat(transform("dateFromParts(y, m, d, h, mm, s, ms, 'UTC')")).isEqualTo(Document.parse(
- "{ \"$dateFromParts\" : {\"year\" : \"$y\", \"month\" : \"$m\", \"day\" : \"$d\", \"hour\" : \"$h\", \"minute\" : \"$mm\", \"second\" : \"$s\", \"millisecond\" : \"$ms\", \"timezone\" : \"UTC\"}}"));
+ assertThat(transform("dateFromParts(y, m, d, h, mm, s, ms, 'UTC')")).isEqualTo(
+ "{ \"$dateFromParts\" : {\"year\" : \"$y\", \"month\" : \"$m\", \"day\" : \"$d\", \"hour\" : \"$h\", \"minute\" : \"$mm\", \"second\" : \"$s\", \"millisecond\" : \"$ms\", \"timezone\" : \"UTC\"}}");
}
@Test // DATAMONGO-2077, DATAMONGO-2671
void shouldRenderIsoDateFromParts() {
- assertThat(transform("isoDateFromParts(y, m, d, h, mm, s, ms, 'UTC')")).isEqualTo(Document.parse(
- "{ \"$dateFromParts\" : {\"isoWeekYear\" : \"$y\", \"isoWeek\" : \"$m\", \"isoDayOfWeek\" : \"$d\", \"hour\" : \"$h\", \"minute\" : \"$mm\", \"second\" : \"$s\", \"millisecond\" : \"$ms\", \"timezone\" : \"UTC\"}}"));
+ assertThat(transform("isoDateFromParts(y, m, d, h, mm, s, ms, 'UTC')")).isEqualTo(
+ "{ \"$dateFromParts\" : {\"isoWeekYear\" : \"$y\", \"isoWeek\" : \"$m\", \"isoDayOfWeek\" : \"$d\", \"hour\" : \"$h\", \"minute\" : \"$mm\", \"second\" : \"$s\", \"millisecond\" : \"$ms\", \"timezone\" : \"UTC\"}}");
}
@Test // DATAMONGO-2077
void shouldRenderDateToParts() {
assertThat(transform("dateToParts(field, 'UTC', false)")).isEqualTo(
- Document.parse("{ \"$dateToParts\" : {\"date\" : \"$field\", \"timezone\" : \"UTC\", \"iso8601\" : false}}"));
+ "{ \"$dateToParts\" : {\"date\" : \"$field\", \"timezone\" : \"UTC\", \"iso8601\" : false}}");
}
@Test // DATAMONGO-2077
void shouldRenderIndexOfArray() {
assertThat(transform("indexOfArray(field, 2)"))
- .isEqualTo(Document.parse("{ \"$indexOfArray\" : [\"$field\", 2 ]}"));
+ .isEqualTo("{ \"$indexOfArray\" : [\"$field\", 2 ]}");
}
@Test // DATAMONGO-2077
void shouldRenderRange() {
- assertThat(transform("range(0, 10, 2)")).isEqualTo(Document.parse("{ \"$range\" : [0, 10, 2 ]}"));
+ assertThat(transform("range(0, 10, 2)")).isEqualTo("{ \"$range\" : [0, 10, 2 ]}");
}
@Test // DATAMONGO-2370
void shouldRenderRound() {
- assertThat(transform("round(field)")).isEqualTo(Document.parse("{ \"$round\" : [\"$field\"]}"));
+ assertThat(transform("round(field)")).isEqualTo("{ \"$round\" : [\"$field\"]}");
}
@Test // DATAMONGO-2370
void shouldRenderRoundWithPlace() {
- assertThat(transform("round(field, 2)")).isEqualTo(Document.parse("{ \"$round\" : [\"$field\", 2]}"));
+ assertThat(transform("round(field, 2)")).isEqualTo("{ \"$round\" : [\"$field\", 2]}");
}
@Test // GH-3714
void shouldRenderDegreesToRadians() {
- assertThat(transform("degreesToRadians(angle_a)")).isEqualTo(Document.parse("{ \"$degreesToRadians\" : \"$angle_a\"}"));
+ assertThat(transform("degreesToRadians(angle_a)")).isEqualTo("{ \"$degreesToRadians\" : \"$angle_a\"}");
}
@Test // GH-3712
void shouldRenderCovariancePop() {
assertThat(transform("covariancePop(field1, field2)"))
- .isEqualTo(Document.parse("{ \"$covariancePop\" : [\"$field1\", \"$field2\"]}"));
+ .isEqualTo("{ \"$covariancePop\" : [\"$field1\", \"$field2\"]}");
}
@Test // GH-3712
void shouldRenderCovarianceSamp() {
assertThat(transform("covarianceSamp(field1, field2)"))
- .isEqualTo(Document.parse("{ \"$covarianceSamp\" : [\"$field1\", \"$field2\"]}"));
+ .isEqualTo("{ \"$covarianceSamp\" : [\"$field1\", \"$field2\"]}");
}
@Test // GH-3715
void shouldRenderRank() {
- assertThat(transform("rank()")).isEqualTo(Document.parse("{ $rank : {} }"));
+ assertThat(transform("rank()")).isEqualTo("{ $rank : {} }");
}
@Test // GH-3715
void shouldRenderDenseRank() {
- assertThat(transform("denseRank()")).isEqualTo(Document.parse("{ $denseRank : {} }"));
+ assertThat(transform("denseRank()")).isEqualTo("{ $denseRank : {} }");
}
@Test // GH-3717
void shouldRenderDocumentNumber() {
- assertThat(transform("documentNumber()")).isEqualTo(Document.parse("{ $documentNumber : {} }"));
+ assertThat(transform("documentNumber()")).isEqualTo("{ $documentNumber : {} }");
}
@Test // GH-3727
void rendersShift() {
assertThat(transform("shift(quantity, 1)"))
- .isEqualTo(Document.parse("{ $shift: { output: \"$quantity\", by: 1 } }"));
+ .isEqualTo("{ $shift: { output: \"$quantity\", by: 1 } }");
}
@Test // GH-3727
void rendersShiftWithDefault() {
assertThat(transform("shift(quantity, 1, 'Not available')"))
- .isEqualTo(Document.parse("{ $shift: { output: \"$quantity\", by: 1, default: \"Not available\" } }"));
+ .isEqualTo("{ $shift: { output: \"$quantity\", by: 1, default: \"Not available\" } }");
}
@Test // GH-3716
void shouldRenderDerivative() {
assertThat(transform("derivative(miles, 'hour')"))
- .isEqualTo(Document.parse("{ \"$derivative\" : { input : '$miles', unit : 'hour'} }"));
+ .isEqualTo("{ \"$derivative\" : { input : '$miles', unit : 'hour'} }");
}
@Test // GH-3721
void shouldRenderIntegral() {
- assertThat(transform("integral(field)")).isEqualTo(Document.parse("{ \"$integral\" : { \"input\" : \"$field\" }}"));
+ assertThat(transform("integral(field)")).isEqualTo("{ \"$integral\" : { \"input\" : \"$field\" }}");
}
@Test // GH-3721
void shouldRenderIntegralWithUnit() {
assertThat(transform("integral(field, 'hour')"))
- .isEqualTo(Document.parse("{ \"$integral\" : { \"input\" : \"$field\", \"unit\" : \"hour\" }}"));
+ .isEqualTo("{ \"$integral\" : { \"input\" : \"$field\", \"unit\" : \"hour\" }}");
}
@Test // GH-3728
void shouldRenderSin() {
- assertThat(transform("sin(angle)")).isEqualTo(Document.parse("{ \"$sin\" : \"$angle\"}"));
+ assertThat(transform("sin(angle)")).isEqualTo("{ \"$sin\" : \"$angle\"}");
}
@Test // GH-3728
void shouldRenderSinh() {
- assertThat(transform("sinh(angle)")).isEqualTo(Document.parse("{ \"$sinh\" : \"$angle\"}"));
+ assertThat(transform("sinh(angle)")).isEqualTo("{ \"$sinh\" : \"$angle\"}");
}
@Test // GH-3710
void shouldRenderCos() {
- assertThat(transform("cos(angle)")).isEqualTo(Document.parse("{ \"$cos\" : \"$angle\"}"));
+ assertThat(transform("cos(angle)")).isEqualTo("{ \"$cos\" : \"$angle\"}");
}
@Test // GH-3710
void shouldRenderCosh() {
- assertThat(transform("cosh(angle)")).isEqualTo(Document.parse("{ \"$cosh\" : \"$angle\"}"));
+ assertThat(transform("cosh(angle)")).isEqualTo("{ \"$cosh\" : \"$angle\"}");
}
@Test // GH-3730
void shouldRenderTan() {
- assertThat(transform("tan(angle)")).isEqualTo(Document.parse("{ \"$tan\" : \"$angle\"}"));
+ assertThat(transform("tan(angle)")).isEqualTo("{ \"$tan\" : \"$angle\"}");
}
@Test // GH-3730
void shouldRenderTanh() {
- assertThat(transform("tanh(angle)")).isEqualTo(Document.parse("{ \"$tanh\" : \"$angle\"}"));
+ assertThat(transform("tanh(angle)")).isEqualTo("{ \"$tanh\" : \"$angle\"}");
}
- private Object transform(String expression, Object... params) {
+ private Document transform(String expression, Object... params) {
+ return (Document) transformer.transform(expression, Aggregation.DEFAULT_CONTEXT, params);
+ }
+
+ private Object transformValue(String expression, Object... params) {
Object result = transformer.transform(expression, Aggregation.DEFAULT_CONTEXT, params);
return result == null ? null : (!(result instanceof org.bson.Document) ? result.toString() : result);
}
diff --git a/src/main/asciidoc/reference/aggregation-framework.adoc b/src/main/asciidoc/reference/aggregation-framework.adoc
index 9b00811a7..6373eb663 100644
--- a/src/main/asciidoc/reference/aggregation-framework.adoc
+++ b/src/main/asciidoc/reference/aggregation-framework.adoc
@@ -85,7 +85,7 @@ At the time of this writing, we provide support for the following Aggregation Op
| `addToSet`, `covariancePop`, `covarianceSamp`, `expMovingAvg`, `first`, `last`, `max`, `min`, `avg`, `push`, `sum`, `count` (+++*+++), `stdDevPop`, `stdDevSamp`
| Arithmetic Aggregation Operators
-| `abs`, `add` (+++*+++ via `plus`), `ceil`, `derivative`, `divide`, `exp`, `floor`, `integral`, `ln`, `log`, `log10`, `mod`, `multiply`, `pow`, `round`, `sqrt`, `subtract` (+++*+++ via `minus`), `trunc`
+| `abs`, `add` (+++*+++ via `plus`), `ceil`, `cos`, `cosh`, `derivative`, `divide`, `exp`, `floor`, `integral`, `ln`, `log`, `log10`, `mod`, `multiply`, `pow`, `round`, `sqrt`, `subtract` (+++*+++ via `minus`), `sin`, `sinh`, `tan`, `tanh`, `trunc`
| String Aggregation Operators
| `concat`, `substr`, `toLower`, `toUpper`, `stcasecmp`, `indexOfBytes`, `indexOfCP`, `split`, `strLenBytes`, `strLenCP`, `substrCP`, `trim`, `ltrim`, `rtim`
@@ -112,7 +112,7 @@ At the time of this writing, we provide support for the following Aggregation Op
| `type`
| Convert Aggregation Operators
-| `convert`, `toBool`, `toDate`, `toDecimal`, `toDouble`, `toInt`, `toLong`, `toObjectId`, `toString`
+| `convert`, `degreesToRadians`, `toBool`, `toDate`, `toDecimal`, `toDouble`, `toInt`, `toLong`, `toObjectId`, `toString`
| Object Aggregation Operators
| `objectToArray`, `mergeObjects`