@@ -137,19 +137,22 @@ function (Builder $builder) {
137
137
];
138
138
139
139
yield 'whereNotBetween array of numbers ' => [
140
- ['find ' => [['$or ' => [['id ' => ['$lte ' => 1 ]], ['id ' => ['$gte ' => 2 ]]]], []]],
140
+ ['find ' => [
141
+ ['$or ' => [
142
+ ['id ' => ['$lte ' => 1 ]],
143
+ ['id ' => ['$gte ' => 2 ]],
144
+ ]],
145
+ [], // options
146
+ ]],
141
147
fn (Builder $ builder ) => $ builder ->whereNotBetween ('id ' , [1 , 2 ]),
142
148
];
143
149
144
- $ period = now ()->toPeriod (now ()->addDay ());
145
- yield 'whereBetween CarbonPeriod ' => [
146
- ['find ' => [['created_at ' => ['$gte ' => new UTCDateTime ($ period ->start ), '$lte ' => new UTCDateTime ($ period ->end )]], []]],
147
- fn (Builder $ builder ) => $ builder ->whereBetween ('created_at ' , $ period ),
148
- ];
149
-
150
150
$ period = now ()->toPeriod (now ()->addMonth ());
151
- yield 'custom long carbon period date ' => [
152
- ['find ' => [['created_at ' => ['$gte ' => new UTCDateTime ($ period ->start ), '$lte ' => new UTCDateTime ($ period ->end )]], []]],
151
+ yield 'whereBetween CarbonPeriod ' => [
152
+ ['find ' => [
153
+ ['created_at ' => ['$gte ' => new UTCDateTime ($ period ->start ), '$lte ' => new UTCDateTime ($ period ->end )]],
154
+ [], // options
155
+ ]],
153
156
fn (Builder $ builder ) => $ builder ->whereBetween ('created_at ' , $ period ),
154
157
];
155
158
@@ -168,22 +171,43 @@ function (Builder $builder) {
168
171
169
172
/** @link https://www.mongodb.com/docs/manual/reference/bson-type-comparison-order/#arrays */
170
173
yield 'orWhereBetween nested array of numbers ' => [
171
- ['find ' => [['$or ' => [['id ' => 1 ], ['id ' => ['$gte ' => [4 ], '$lte ' => [6 , 8 ]]]]], []]],
174
+ ['find ' => [
175
+ ['$or ' => [
176
+ ['id ' => 1 ],
177
+ ['id ' => ['$gte ' => [4 ], '$lte ' => [6 , 8 ]]],
178
+ ]],
179
+ [], // options
180
+ ]],
172
181
fn (Builder $ builder ) => $ builder
173
182
->where ('id ' , '= ' , 1 )
174
183
->orWhereBetween ('id ' , [[4 ], [6 , 8 ]]),
175
184
];
176
185
177
186
yield 'orWhereBetween collection ' => [
178
- ['find ' => [['$or ' => [['id ' => 1 ], ['id ' => ['$gte ' => 3 , '$lte ' => 4 ]]]], []]],
187
+ ['find ' => [
188
+ ['$or ' => [
189
+ ['id ' => 1 ],
190
+ ['id ' => ['$gte ' => 3 , '$lte ' => 4 ]],
191
+ ]],
192
+ [], // options
193
+ ]],
179
194
fn (Builder $ builder ) => $ builder
180
195
->where ('id ' , '= ' , 1 )
181
196
->orWhereBetween ('id ' , collect ([3 , 4 ])),
182
197
];
183
198
184
199
/** @see DatabaseQueryBuilderTest::testOrWhereNotBetween() */
185
200
yield 'orWhereNotBetween array of numbers ' => [
186
- ['find ' => [['$or ' => [['id ' => 1 ], ['$or ' => [['id ' => ['$lte ' => 3 ]], ['id ' => ['$gte ' => 5 ]]]]]], []]],
201
+ ['find ' => [
202
+ ['$or ' => [
203
+ ['id ' => 1 ],
204
+ ['$or ' => [
205
+ ['id ' => ['$lte ' => 3 ]],
206
+ ['id ' => ['$gte ' => 5 ]],
207
+ ]],
208
+ ]],
209
+ [], // options
210
+ ]],
187
211
fn (Builder $ builder ) => $ builder
188
212
->where ('id ' , '= ' , 1 )
189
213
->orWhereNotBetween ('id ' , [3 , 5 ]),
@@ -197,14 +221,32 @@ function (Builder $builder) {
197
221
];
198
222
199
223
yield 'orWhereNotBetween excessive nested array of numbers ' => [
200
- ['find ' => [['$or ' => [['id ' => 1 ], ['$or ' => [['id ' => ['$lte ' => [4 ]]], ['id ' => ['$gte ' => [6 , 8 ]]]]]]], []]],
224
+ ['find ' => [
225
+ ['$or ' => [
226
+ ['id ' => 1 ],
227
+ ['$or ' => [
228
+ ['id ' => ['$lte ' => [4 ]]],
229
+ ['id ' => ['$gte ' => [6 , 8 ]]],
230
+ ]],
231
+ ]],
232
+ [], // options
233
+ ]],
201
234
fn (Builder $ builder ) => $ builder
202
235
->where ('id ' , '= ' , 1 )
203
236
->orWhereNotBetween ('id ' , [[4 ], [6 , 8 ]]),
204
237
];
205
238
206
239
yield 'orWhereNotBetween collection ' => [
207
- ['find ' => [['$or ' => [['id ' => 1 ], ['$or ' => [['id ' => ['$lte ' => 3 ]], ['id ' => ['$gte ' => 4 ]]]]]], []]],
240
+ ['find ' => [
241
+ ['$or ' => [
242
+ ['id ' => 1 ],
243
+ ['$or ' => [
244
+ ['id ' => ['$lte ' => 3 ]],
245
+ ['id ' => ['$gte ' => 4 ]],
246
+ ]],
247
+ ]],
248
+ [], // options
249
+ ]],
208
250
fn (Builder $ builder ) => $ builder
209
251
->where ('id ' , '= ' , 1 )
210
252
->orWhereNotBetween ('id ' , collect ([3 , 4 ])),
@@ -216,7 +258,10 @@ function (Builder $builder) {
216
258
];
217
259
218
260
yield 'groupBy ' => [
219
- ['aggregate ' => [[['$group ' => ['_id ' => ['foo ' => '$foo ' ], 'foo ' => ['$last ' => '$foo ' ]]]], []]],
261
+ ['aggregate ' => [
262
+ [['$group ' => ['_id ' => ['foo ' => '$foo ' ], 'foo ' => ['$last ' => '$foo ' ]]]],
263
+ [], // options
264
+ ]],
220
265
fn (Builder $ builder ) => $ builder ->groupBy ('foo ' ),
221
266
];
222
267
}
@@ -244,19 +289,19 @@ public static function provideExceptions(): iterable
244
289
/** @see DatabaseQueryBuilderTest::testWhereBetweens */
245
290
yield 'whereBetween array too short ' => [
246
291
\InvalidArgumentException::class,
247
- 'Between $values must have exactly two elements: [min, max] ' ,
292
+ 'Between $values must be a list with exactly two elements: [min, max] ' ,
248
293
fn (Builder $ builder ) => $ builder ->whereBetween ('id ' , [1 ]),
249
294
];
250
295
251
296
yield 'whereBetween array too long ' => [
252
297
\InvalidArgumentException::class,
253
- 'Between $values must have exactly two elements: [min, max] ' ,
298
+ 'Between $values must be a list with exactly two elements: [min, max] ' ,
254
299
fn (Builder $ builder ) => $ builder ->whereBetween ('id ' , [1 , 2 , 3 ]),
255
300
];
256
301
257
302
yield 'whereBetween collection too long ' => [
258
303
\InvalidArgumentException::class,
259
- 'Between $values must have exactly two elements: [min, max] ' ,
304
+ 'Between $values must be a list with exactly two elements: [min, max] ' ,
260
305
fn (Builder $ builder ) => $ builder ->whereBetween ('id ' , new Collection ([1 , 2 , 3 ])),
261
306
];
262
307
@@ -268,7 +313,7 @@ public static function provideExceptions(): iterable
268
313
269
314
yield 'whereBetween nested ' => [
270
315
\InvalidArgumentException::class,
271
- 'Between $values must have exactly two elements: [min, max] ' ,
316
+ 'Between $values must be a list with exactly two elements: [min, max] ' ,
272
317
fn (Builder $ builder ) => $ builder ->whereBetween ('id ' , [[1 , 2 ]]),
273
318
];
274
319
}
0 commit comments