30
30
class DateExpressionsFunctionalTest extends AbstractExpressionsFunctionalTest {
31
31
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/#date-expression-operators
32
32
33
- private final ZonedDateTime utcDateTime = ZonedDateTime .ofInstant (Instant .parse ("2007-12-03T10:15:30.005Z" ), ZoneId .of (ZoneOffset .UTC .getId ()));
33
+ private final Instant instant = Instant .parse ("2007-12-03T10:15:30.005Z" );
34
+ private final DateExpression date = of (instant );
35
+ private final ZonedDateTime utcDateTime = ZonedDateTime .ofInstant (instant , ZoneId .of (ZoneOffset .UTC .getId ()));
34
36
private final StringExpression utc = of ("UTC" );
35
- private final DateExpression utcDateEx = of (utcDateTime .toInstant ());
36
37
37
38
@ Test
38
39
public void literalsTest () {
39
40
assertExpression (
40
- utcDateTime .toInstant (), utcDateEx ,
41
+ instant ,
42
+ date ,
41
43
"{'$date': '2007-12-03T10:15:30.005Z'}" );
42
44
}
43
45
@@ -46,7 +48,7 @@ public void yearTest() {
46
48
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/year/
47
49
assertExpression (
48
50
utcDateTime .get (ChronoField .YEAR ),
49
- utcDateEx .year (utc ),
51
+ date .year (utc ),
50
52
"{'$year': {'date': {'$date': '2007-12-03T10:15:30.005Z'}, 'timezone': 'UTC'}}" );
51
53
}
52
54
@@ -55,7 +57,7 @@ public void monthTest() {
55
57
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/month/
56
58
assertExpression (
57
59
utcDateTime .get (ChronoField .MONTH_OF_YEAR ),
58
- utcDateEx .month (utc ),
60
+ date .month (utc ),
59
61
"{'$month': {'date': {'$date': '2007-12-03T10:15:30.005Z'}, 'timezone': 'UTC'}}" );
60
62
}
61
63
@@ -64,7 +66,7 @@ public void dayOfMonthTest() {
64
66
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/dayOfMonth/
65
67
assertExpression (
66
68
utcDateTime .get (ChronoField .DAY_OF_MONTH ),
67
- utcDateEx .dayOfMonth (utc ),
69
+ date .dayOfMonth (utc ),
68
70
"{'$dayOfMonth': {'date': {'$date': '2007-12-03T10:15:30.005Z'}, 'timezone': 'UTC'}}" );
69
71
}
70
72
@@ -73,7 +75,7 @@ public void dayOfWeekTest() {
73
75
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/dayOfWeek/
74
76
assertExpression (
75
77
utcDateTime .get (ChronoField .DAY_OF_WEEK ) + 1 ,
76
- utcDateEx .dayOfWeek (utc ),
78
+ date .dayOfWeek (utc ),
77
79
"{'$dayOfWeek': {'date': {'$date': '2007-12-03T10:15:30.005Z'}, 'timezone': 'UTC'}}" );
78
80
}
79
81
@@ -82,7 +84,7 @@ public void dayOfYearTest() {
82
84
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/dayOfYear/
83
85
assertExpression (
84
86
utcDateTime .get (ChronoField .DAY_OF_YEAR ),
85
- utcDateEx .dayOfYear (utc ),
87
+ date .dayOfYear (utc ),
86
88
"{'$dayOfYear': {'date': {'$date': '2007-12-03T10:15:30.005Z'}, 'timezone': 'UTC'}}" );
87
89
}
88
90
@@ -91,7 +93,7 @@ public void hourTest() {
91
93
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/hour/
92
94
assertExpression (
93
95
utcDateTime .get (ChronoField .HOUR_OF_DAY ),
94
- utcDateEx .hour (utc ),
96
+ date .hour (utc ),
95
97
"{'$hour': {'date': {'$date': '2007-12-03T10:15:30.005Z'}, 'timezone': 'UTC'}}" );
96
98
}
97
99
@@ -100,7 +102,7 @@ public void minuteTest() {
100
102
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/minute/
101
103
assertExpression (
102
104
utcDateTime .get (ChronoField .MINUTE_OF_HOUR ),
103
- utcDateEx .minute (utc ),
105
+ date .minute (utc ),
104
106
"{'$minute': {'date': {'$date': '2007-12-03T10:15:30.005Z'}, 'timezone': 'UTC'}}" );
105
107
}
106
108
@@ -109,7 +111,7 @@ public void secondTest() {
109
111
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/second/
110
112
assertExpression (
111
113
utcDateTime .get (ChronoField .SECOND_OF_MINUTE ),
112
- utcDateEx .second (utc ),
114
+ date .second (utc ),
113
115
"{'$second': {'date': {'$date': '2007-12-03T10:15:30.005Z'}, 'timezone': 'UTC'}}" );
114
116
}
115
117
@@ -118,7 +120,7 @@ public void weekTest() {
118
120
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/week/
119
121
assertExpression (
120
122
48 ,
121
- utcDateEx .week (utc ),
123
+ date .week (utc ),
122
124
"{'$week': {'date': {'$date': '2007-12-03T10:15:30.005Z'}, 'timezone': 'UTC'}}" );
123
125
}
124
126
@@ -127,27 +129,27 @@ public void millisecondTest() {
127
129
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/millisecond/
128
130
assertExpression (
129
131
utcDateTime .get (ChronoField .MILLI_OF_SECOND ),
130
- utcDateEx .millisecond (utc ),
132
+ date .millisecond (utc ),
131
133
"{'$millisecond': {'date': {'$date': '2007-12-03T10:15:30.005Z'}, 'timezone': 'UTC'}}" );
132
134
}
133
135
134
136
@ Test
135
137
public void dateToStringTest () {
136
138
// https://www.mongodb.com/docs/manual/reference/operator/aggregation/dateToString/
137
139
assertExpression (
138
- utcDateTime . toInstant () .toString (),
139
- utcDateEx .dateToString (),
140
+ instant .toString (),
141
+ date .dateToString (),
140
142
"{'$dateToString': {'date': {'$date': '2007-12-03T10:15:30.005Z'}}}" );
141
143
// with parameters
142
144
assertExpression (
143
145
utcDateTime .withZoneSameInstant (ZoneId .of ("America/New_York" )).format (ISO_LOCAL_DATE_TIME ),
144
- utcDateEx .dateToString (of ("America/New_York" ), of ("%Y-%m-%dT%H:%M:%S.%L" )),
146
+ date .dateToString (of ("America/New_York" ), of ("%Y-%m-%dT%H:%M:%S.%L" )),
145
147
"{'$dateToString': {'date': {'$date': '2007-12-03T10:15:30.005Z'}, "
146
148
+ "'format': '%Y-%m-%dT%H:%M:%S.%L', "
147
149
+ "'timezone': 'America/New_York'}}" );
148
150
assertExpression (
149
151
utcDateTime .withZoneSameInstant (ZoneId .of ("+04:30" )).format (ISO_LOCAL_DATE_TIME ),
150
- utcDateEx .dateToString (of ("+04:30" ), of ("%Y-%m-%dT%H:%M:%S.%L" )),
152
+ date .dateToString (of ("+04:30" ), of ("%Y-%m-%dT%H:%M:%S.%L" )),
151
153
"{'$dateToString': {'date': {'$date': '2007-12-03T10:15:30.005Z'}, "
152
154
+ "'format': '%Y-%m-%dT%H:%M:%S.%L', "
153
155
+ "'timezone': '+04:30'}}" );
0 commit comments