@@ -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
@@ -160,51 +163,105 @@ function (Builder $builder) {
160
163
161
164
/** @see DatabaseQueryBuilderTest::testOrWhereBetween() */
162
165
yield 'whereBetween array numbers ' => [
163
- ['find ' => [['$or ' => [['id ' => 1 ], ['id ' => ['$gte ' => 3 , '$lte ' => 5 ]]]], []]],
166
+ ['find ' => [
167
+ ['$or ' => [
168
+ ['id ' => 1 ],
169
+ ['id ' => ['$gte ' => 3 , '$lte ' => 5 ]],
170
+ ]],
171
+ [], // options
172
+ ]],
164
173
fn (Builder $ builder ) => $ builder
165
174
->where ('id ' , '= ' , 1 )
166
175
->orWhereBetween ('id ' , [3 , 5 ]),
167
176
];
168
177
169
178
/** @link https://www.mongodb.com/docs/manual/reference/bson-type-comparison-order/#arrays */
170
179
yield 'orWhereBetween nested array of numbers ' => [
171
- ['find ' => [['$or ' => [['id ' => 1 ], ['id ' => ['$gte ' => [4 ], '$lte ' => [6 , 8 ]]]]], []]],
180
+ ['find ' => [
181
+ ['$or ' => [
182
+ ['id ' => 1 ],
183
+ ['id ' => ['$gte ' => [4 ], '$lte ' => [6 , 8 ]]],
184
+ ]],
185
+ [], // options
186
+ ]],
172
187
fn (Builder $ builder ) => $ builder
173
188
->where ('id ' , '= ' , 1 )
174
189
->orWhereBetween ('id ' , [[4 ], [6 , 8 ]]),
175
190
];
176
191
177
192
yield 'orWhereBetween collection ' => [
178
- ['find ' => [['$or ' => [['id ' => 1 ], ['id ' => ['$gte ' => 3 , '$lte ' => 4 ]]]], []]],
193
+ ['find ' => [
194
+ ['$or ' => [
195
+ ['id ' => 1 ],
196
+ ['id ' => ['$gte ' => 3 , '$lte ' => 4 ]],
197
+ ]],
198
+ [], // options
199
+ ]],
179
200
fn (Builder $ builder ) => $ builder
180
201
->where ('id ' , '= ' , 1 )
181
202
->orWhereBetween ('id ' , collect ([3 , 4 ])),
182
203
];
183
204
184
205
/** @see DatabaseQueryBuilderTest::testOrWhereNotBetween() */
185
206
yield 'orWhereNotBetween array of numbers ' => [
186
- ['find ' => [['$or ' => [['id ' => 1 ], ['$or ' => [['id ' => ['$lte ' => 3 ]], ['id ' => ['$gte ' => 5 ]]]]]], []]],
207
+ ['find ' => [
208
+ ['$or ' => [
209
+ ['id ' => 1 ],
210
+ ['$or ' => [
211
+ ['id ' => ['$lte ' => 3 ]],
212
+ ['id ' => ['$gte ' => 5 ]],
213
+ ]],
214
+ ]],
215
+ [], // options
216
+ ]],
187
217
fn (Builder $ builder ) => $ builder
188
218
->where ('id ' , '= ' , 1 )
189
219
->orWhereNotBetween ('id ' , [3 , 5 ]),
190
220
];
191
221
192
222
yield 'orWhereNotBetween nested array of numbers ' => [
193
- ['find ' => [['$or ' => [['id ' => 1 ], ['$or ' => [['id ' => ['$lte ' => [2 , 3 ]]], ['id ' => ['$gte ' => [5 ]]]]]]], []]],
223
+ ['find ' => [
224
+ ['$or ' => [
225
+ ['id ' => 1 ],
226
+ ['$or ' => [
227
+ ['id ' => ['$lte ' => [2 , 3 ]]],
228
+ ['id ' => ['$gte ' => [5 ]]],
229
+ ]],
230
+ ]],
231
+ [], // options
232
+ ]],
194
233
fn (Builder $ builder ) => $ builder
195
234
->where ('id ' , '= ' , 1 )
196
235
->orWhereNotBetween ('id ' , [[2 , 3 ], [5 ]]),
197
236
];
198
237
199
238
yield 'orWhereNotBetween excessive nested array of numbers ' => [
200
- ['find ' => [['$or ' => [['id ' => 1 ], ['$or ' => [['id ' => ['$lte ' => [4 ]]], ['id ' => ['$gte ' => [6 , 8 ]]]]]]], []]],
239
+ ['find ' => [
240
+ ['$or ' => [
241
+ ['id ' => 1 ],
242
+ ['$or ' => [
243
+ ['id ' => ['$lte ' => [4 ]]],
244
+ ['id ' => ['$gte ' => [6 , 8 ]]],
245
+ ]],
246
+ ]],
247
+ [], // options
248
+ ]],
201
249
fn (Builder $ builder ) => $ builder
202
250
->where ('id ' , '= ' , 1 )
203
251
->orWhereNotBetween ('id ' , [[4 ], [6 , 8 ]]),
204
252
];
205
253
206
254
yield 'orWhereNotBetween collection ' => [
207
- ['find ' => [['$or ' => [['id ' => 1 ], ['$or ' => [['id ' => ['$lte ' => 3 ]], ['id ' => ['$gte ' => 4 ]]]]]], []]],
255
+ ['find ' => [
256
+ ['$or ' => [
257
+ ['id ' => 1 ],
258
+ ['$or ' => [
259
+ ['id ' => ['$lte ' => 3 ]],
260
+ ['id ' => ['$gte ' => 4 ]],
261
+ ]],
262
+ ]],
263
+ [], // options
264
+ ]],
208
265
fn (Builder $ builder ) => $ builder
209
266
->where ('id ' , '= ' , 1 )
210
267
->orWhereNotBetween ('id ' , collect ([3 , 4 ])),
@@ -216,7 +273,10 @@ function (Builder $builder) {
216
273
];
217
274
218
275
yield 'groupBy ' => [
219
- ['aggregate ' => [[['$group ' => ['_id ' => ['foo ' => '$foo ' ], 'foo ' => ['$last ' => '$foo ' ]]]], []]],
276
+ ['aggregate ' => [
277
+ [['$group ' => ['_id ' => ['foo ' => '$foo ' ], 'foo ' => ['$last ' => '$foo ' ]]]],
278
+ [], // options
279
+ ]],
220
280
fn (Builder $ builder ) => $ builder ->groupBy ('foo ' ),
221
281
];
222
282
}
@@ -244,19 +304,19 @@ public static function provideExceptions(): iterable
244
304
/** @see DatabaseQueryBuilderTest::testWhereBetweens */
245
305
yield 'whereBetween array too short ' => [
246
306
\InvalidArgumentException::class,
247
- 'Between $values must have exactly two elements: [min, max] ' ,
307
+ 'Between $values must be a list with exactly two elements: [min, max] ' ,
248
308
fn (Builder $ builder ) => $ builder ->whereBetween ('id ' , [1 ]),
249
309
];
250
310
251
311
yield 'whereBetween array too long ' => [
252
312
\InvalidArgumentException::class,
253
- 'Between $values must have exactly two elements: [min, max] ' ,
313
+ 'Between $values must be a list with exactly two elements: [min, max] ' ,
254
314
fn (Builder $ builder ) => $ builder ->whereBetween ('id ' , [1 , 2 , 3 ]),
255
315
];
256
316
257
317
yield 'whereBetween collection too long ' => [
258
318
\InvalidArgumentException::class,
259
- 'Between $values must have exactly two elements: [min, max] ' ,
319
+ 'Between $values must be a list with exactly two elements: [min, max] ' ,
260
320
fn (Builder $ builder ) => $ builder ->whereBetween ('id ' , new Collection ([1 , 2 , 3 ])),
261
321
];
262
322
@@ -268,7 +328,7 @@ public static function provideExceptions(): iterable
268
328
269
329
yield 'whereBetween nested ' => [
270
330
\InvalidArgumentException::class,
271
- 'Between $values must have exactly two elements: [min, max] ' ,
331
+ 'Between $values must be a list with exactly two elements: [min, max] ' ,
272
332
fn (Builder $ builder ) => $ builder ->whereBetween ('id ' , [[1 , 2 ]]),
273
333
];
274
334
}
0 commit comments