@@ -131,17 +131,10 @@ function (Builder $builder) {
131
131
fn (Builder $ builder ) => $ builder ->whereBetween ('id ' , [1 , 2 ]),
132
132
];
133
133
134
- /*
135
- yield 'whereBetween excessive nested array of numbers' => [
136
- ['find' => [['id' => ['$gte' => 1, '$lte' => 2]], []],
137
- fn (Builder $builder) => $builder->whereBetween('id', [[1, 2, 3]]),
138
- ];
139
-
140
134
yield 'whereBetween nested array of numbers ' => [
141
- ['find' => [['id' => ['$gte' => 1 , '$lte' => 2 ]], []]],
135
+ ['find ' => [['id ' => ['$gte ' => [ 1 ] , '$lte ' => [ 2 , 3 ] ]], []]],
142
136
fn (Builder $ builder ) => $ builder ->whereBetween ('id ' , [[1 ], [2 , 3 ]]),
143
137
];
144
- */
145
138
146
139
yield 'whereNotBetween array of numbers ' => [
147
140
['find ' => [['$or ' => [['id ' => ['$lte ' => 1 ]], ['id ' => ['$gte ' => 2 ]]]], []]],
@@ -173,28 +166,13 @@ function (Builder $builder) {
173
166
->orWhereBetween ('id ' , [3 , 5 ]),
174
167
];
175
168
176
- /*
177
- yield 'whereBetween excessive nested array numbers' => [
178
- ['find' => [['$or' => [['id' => 1], ['id' => ['$gte' => 3, '$lte' => 4]]]], []],
179
- fn (Builder $builder) => $builder
180
- ->where('id', '=', 1)
181
- ->orWhereBetween('id', [[3, 4, 5]]),
182
- ];
183
-
184
- yield 'orWhereBetween nested array numbers' => [
185
- ['find' => [['$or' => [['id' => 1], ['id' => ['$gte' => 3, '$lte' => 5]]]], []],
186
- fn (Builder $builder) => $builder
187
- ->where('id', '=', 1)
188
- ->orWhereBetween('id', [[3, 5]]),
189
- ];
190
-
191
- yield 'orWhereBetween nested excessive array numbers' => [
192
- ['find' => [['$or' => [['id' => 1], ['id' => ['$gte' => 4, '$lte' => 6]]]], []],
169
+ /** @link https://www.mongodb.com/docs/manual/reference/bson-type-comparison-order/#arrays */
170
+ yield 'orWhereBetween nested array of numbers ' => [
171
+ ['find ' => [['$or ' => [['id ' => 1 ], ['id ' => ['$gte ' => [4 ], '$lte ' => [6 , 8 ]]]]], []]],
193
172
fn (Builder $ builder ) => $ builder
194
173
->where ('id ' , '= ' , 1 )
195
174
->orWhereBetween ('id ' , [[4 ], [6 , 8 ]]),
196
175
];
197
- */
198
176
199
177
yield 'orWhereBetween collection ' => [
200
178
['find ' => [['$or ' => [['id ' => 1 ], ['id ' => ['$gte ' => 3 , '$lte ' => 4 ]]]], []]],
@@ -211,24 +189,15 @@ function (Builder $builder) {
211
189
->orWhereNotBetween ('id ' , [3 , 5 ]),
212
190
];
213
191
214
- /*
215
- yield 'orWhereNotBetween excessive array of numbers' => [
216
- ['find' => [['$or' => [['id' => 1], ['$or' => [['id' => ['$lte' => 3]], ['id' => ['$gte' => 4]]]]]], []],
217
- fn (Builder $builder) => $builder
218
- ->where('id', '=', 1)
219
- ->orWhereNotBetween('id', [[3, 4, 5]]),
220
- ];
221
-
222
192
yield 'orWhereNotBetween nested array of numbers ' => [
223
- ['find' => [['$or' => [['id' => 1], ['$or' => [['id' => ['$lte' => 3]], ['id' => ['$gte' => 5]]]]]], []],
193
+ ['find ' => [['$or ' => [['id ' => 1 ], ['$or ' => [['id ' => ['$lte ' => [ 2 , 3 ]]] , ['id ' => ['$gte ' => [ 5 ]]]]]]] , [] ]],
224
194
fn (Builder $ builder ) => $ builder
225
195
->where ('id ' , '= ' , 1 )
226
- ->orWhereNotBetween('id', [[3, 5]]),
196
+ ->orWhereNotBetween ('id ' , [[2 , 3 ], [ 5 ]]),
227
197
];
228
- */
229
198
230
199
yield 'orWhereNotBetween excessive nested array of numbers ' => [
231
- ['find ' => [['$or ' => [['id ' => 1 ], ['$or ' => [['id ' => ['$lte ' => [4 ]]], ['id ' => ['$gte ' => [6 , 8 ]]]]]]]]],
200
+ ['find ' => [['$or ' => [['id ' => 1 ], ['$or ' => [['id ' => ['$lte ' => [4 ]]], ['id ' => ['$gte ' => [6 , 8 ]]]]]]], [] ]],
232
201
fn (Builder $ builder ) => $ builder
233
202
->where ('id ' , '= ' , 1 )
234
203
->orWhereNotBetween ('id ' , [[4 ], [6 , 8 ]]),
@@ -297,6 +266,11 @@ public static function provideExceptions(): iterable
297
266
fn (Builder $ builder ) => $ builder ->whereBetween ('id ' , ['min ' => 1 , 'max ' => 2 ]),
298
267
];
299
268
269
+ yield 'whereBetween nested ' => [
270
+ \InvalidArgumentException::class,
271
+ 'Between $values must have exactly two elements: [min, max] ' ,
272
+ fn (Builder $ builder ) => $ builder ->whereBetween ('id ' , [[1 , 2 ]]),
273
+ ];
300
274
}
301
275
302
276
/** @dataProvider getEloquentMethodsNotSupported */
0 commit comments