Skip to content

Commit 23ea666

Browse files
committed
5.2 annotations (#1070)
JAVA-4799
1 parent 14df144 commit 23ea666

File tree

5 files changed

+20
-0
lines changed

5 files changed

+20
-0
lines changed

driver-core/src/main/com/mongodb/client/model/expressions/ArrayExpression.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ public interface ArrayExpression<T extends Expression> extends Expression {
105105
* The {@linkplain #gt(Expression) largest} value all the values of
106106
* {@code this} array, or the {@code other} value if this array is empty.
107107
*
108+
* @mongodb.server.release 5.2
108109
* @param other the other value.
109110
* @return the resulting value.
110111
*/
@@ -114,6 +115,7 @@ public interface ArrayExpression<T extends Expression> extends Expression {
114115
* The {@linkplain #lt(Expression) smallest} value all the values of
115116
* {@code this} array, or the {@code other} value if this array is empty.
116117
*
118+
* @mongodb.server.release 5.2
117119
* @param other the other value.
118120
* @return the resulting value.
119121
*/
@@ -124,6 +126,7 @@ public interface ArrayExpression<T extends Expression> extends Expression {
124126
* {@code this} array, or all elements if the array contains fewer than
125127
* {@code n} elements.
126128
*
129+
* @mongodb.server.release 5.2
127130
* @param n the number of elements.
128131
* @return the resulting value.
129132
*/
@@ -134,6 +137,7 @@ public interface ArrayExpression<T extends Expression> extends Expression {
134137
* {@code this} array, or all elements if the array contains fewer than
135138
* {@code n} elements.
136139
*
140+
* @mongodb.server.release 5.2
137141
* @param n the number of elements.
138142
* @return the resulting value.
139143
*/

driver-core/src/main/com/mongodb/client/model/expressions/Expression.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ public interface Expression {
175175
* {@code this} is an integer, or the {@code other} integer value if
176176
* {@code this} is null, or is missing, or is of any other non-integer type.
177177
*
178+
* @mongodb.server.release 5.2
178179
* @param other the other value.
179180
* @return the resulting value.
180181
*/

driver-core/src/test/functional/com/mongodb/client/model/expressions/ArrayExpressionsFunctionalTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.util.stream.Collectors;
3030
import java.util.stream.Stream;
3131

32+
import static com.mongodb.ClusterFixture.serverVersionAtLeast;
3233
import static com.mongodb.client.model.expressions.Expressions.of;
3334
import static com.mongodb.client.model.expressions.Expressions.ofArray;
3435
import static com.mongodb.client.model.expressions.Expressions.ofBooleanArray;
@@ -37,6 +38,7 @@
3738
import static com.mongodb.client.model.expressions.Expressions.ofNumberArray;
3839
import static com.mongodb.client.model.expressions.Expressions.ofStringArray;
3940
import static org.junit.jupiter.api.Assertions.assertThrows;
41+
import static org.junit.jupiter.api.Assumptions.assumeTrue;
4042

4143
@SuppressWarnings({"Convert2MethodRef"})
4244
class ArrayExpressionsFunctionalTest extends AbstractExpressionsFunctionalTest {
@@ -141,6 +143,7 @@ public void sortTest() {
141143

142144
@SuppressWarnings("unchecked")
143145
private static ArrayExpression<? extends NumberExpression> sort(final ArrayExpression<? extends NumberExpression> array) {
146+
assumeTrue(serverVersionAtLeast(5, 2)); // due to sort
144147
MqlExpression<? extends NumberExpression> mqlArray = (MqlExpression<? extends NumberExpression>) array;
145148
return mqlArray.sort();
146149
}
@@ -215,6 +218,7 @@ public void reduceMultiplyTest() {
215218

216219
@Test
217220
public void reduceMaxTest() {
221+
assumeTrue(serverVersionAtLeast(5, 2));
218222
assertExpression(
219223
3,
220224
ofIntegerArray(1, 2, 3).max(of(9)),
@@ -227,6 +231,7 @@ public void reduceMaxTest() {
227231

228232
@Test
229233
public void reduceMinTest() {
234+
assumeTrue(serverVersionAtLeast(5, 2));
230235
assertExpression(
231236
1,
232237
ofIntegerArray(1, 2, 3).min(of(9)),
@@ -239,6 +244,7 @@ public void reduceMinTest() {
239244

240245
@Test
241246
public void reduceMaxNTest() {
247+
assumeTrue(serverVersionAtLeast(5, 2));
242248
assertExpression(
243249
Arrays.asList(3, 2),
244250
ofIntegerArray(3, 1, 2).maxN(of(2)));
@@ -253,6 +259,7 @@ public void reduceMaxNTest() {
253259

254260
@Test
255261
public void reduceMinNTest() {
262+
assumeTrue(serverVersionAtLeast(5, 2));
256263
assertExpression(
257264
Arrays.asList(1, 2),
258265
ofIntegerArray(3, 1, 2).minN(of(2)));

driver-core/src/test/functional/com/mongodb/client/model/expressions/ControlExpressionsFunctionalTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,13 @@
2222
import java.time.Instant;
2323
import java.util.function.Function;
2424

25+
import static com.mongodb.ClusterFixture.serverVersionAtLeast;
2526
import static com.mongodb.client.model.expressions.Expressions.of;
2627
import static com.mongodb.client.model.expressions.Expressions.ofArray;
2728
import static com.mongodb.client.model.expressions.Expressions.ofIntegerArray;
2829
import static com.mongodb.client.model.expressions.Expressions.ofMap;
2930
import static com.mongodb.client.model.expressions.Expressions.ofNull;
31+
import static org.junit.jupiter.api.Assumptions.assumeTrue;
3032

3133
class ControlExpressionsFunctionalTest extends AbstractExpressionsFunctionalTest {
3234

@@ -107,6 +109,8 @@ public void switchInferenceTest() {
107109

108110
@Test
109111
public void switchTypesTest() {
112+
// isIntegerOr relies on switch short-circuiting, which only happens after 5.2
113+
assumeTrue(serverVersionAtLeast(5, 2));
110114
Function<Expression, StringExpression> label = expr -> expr.switchOn(on -> on
111115
.isBoolean(v -> v.asString().concat(of(" - bool")))
112116
// integer should be checked before string

driver-core/src/test/functional/com/mongodb/client/model/expressions/TypeExpressionsFunctionalTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,14 @@
2828
import java.time.ZonedDateTime;
2929
import java.util.Arrays;
3030

31+
import static com.mongodb.ClusterFixture.serverVersionAtLeast;
3132
import static com.mongodb.client.model.expressions.Expressions.of;
3233
import static com.mongodb.client.model.expressions.Expressions.ofIntegerArray;
3334
import static com.mongodb.client.model.expressions.Expressions.ofMap;
3435
import static com.mongodb.client.model.expressions.Expressions.ofNull;
3536
import static java.time.format.DateTimeFormatter.ISO_LOCAL_DATE_TIME;
3637
import static org.junit.jupiter.api.Assertions.assertThrows;
38+
import static org.junit.jupiter.api.Assumptions.assumeTrue;
3739

3840
class TypeExpressionsFunctionalTest extends AbstractExpressionsFunctionalTest {
3941
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/#type-expression-operators
@@ -67,6 +69,8 @@ public void isNumberOrTest() {
6769

6870
@Test
6971
public void isIntegerOr() {
72+
// isIntegerOr relies on switch short-circuiting, which only happens after 5.2
73+
assumeTrue(serverVersionAtLeast(5, 2));
7074
assertExpression(
7175
1,
7276
of(1).isIntegerOr(of(99)),

0 commit comments

Comments
 (0)