Skip to content
This repository was archived by the owner on Aug 22, 2023. It is now read-only.

Commit 736d988

Browse files
committed
1 parent 8145572 commit 736d988

File tree

1 file changed

+12
-38
lines changed

1 file changed

+12
-38
lines changed

tests/Query/BuilderTest.php

Lines changed: 12 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -131,17 +131,10 @@ function (Builder $builder) {
131131
fn (Builder $builder) => $builder->whereBetween('id', [1, 2]),
132132
];
133133

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-
140134
yield 'whereBetween nested array of numbers' => [
141-
['find' => [['id' => ['$gte' => 1, '$lte' => 2]], []]],
135+
['find' => [['id' => ['$gte' => [1], '$lte' => [2, 3]]], []]],
142136
fn (Builder $builder) => $builder->whereBetween('id', [[1], [2, 3]]),
143137
];
144-
*/
145138

146139
yield 'whereNotBetween array of numbers' => [
147140
['find' => [['$or' => [['id' => ['$lte' => 1]], ['id' => ['$gte' => 2]]]], []]],
@@ -173,28 +166,13 @@ function (Builder $builder) {
173166
->orWhereBetween('id', [3, 5]),
174167
];
175168

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]]]]], []]],
193172
fn (Builder $builder) => $builder
194173
->where('id', '=', 1)
195174
->orWhereBetween('id', [[4], [6, 8]]),
196175
];
197-
*/
198176

199177
yield 'orWhereBetween collection' => [
200178
['find' => [['$or' => [['id' => 1], ['id' => ['$gte' => 3, '$lte' => 4]]]], []]],
@@ -211,24 +189,15 @@ function (Builder $builder) {
211189
->orWhereNotBetween('id', [3, 5]),
212190
];
213191

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-
222192
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]]]]]]], []]],
224194
fn (Builder $builder) => $builder
225195
->where('id', '=', 1)
226-
->orWhereNotBetween('id', [[3, 5]]),
196+
->orWhereNotBetween('id', [[2, 3], [5]]),
227197
];
228-
*/
229198

230199
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]]]]]]], []]],
232201
fn (Builder $builder) => $builder
233202
->where('id', '=', 1)
234203
->orWhereNotBetween('id', [[4], [6, 8]]),
@@ -297,6 +266,11 @@ public static function provideExceptions(): iterable
297266
fn (Builder $builder) => $builder->whereBetween('id', ['min' => 1, 'max' => 2]),
298267
];
299268

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+
];
300274
}
301275

302276
/** @dataProvider getEloquentMethodsNotSupported */

0 commit comments

Comments
 (0)