Skip to content

Commit 8210072

Browse files
committed
Add contains any test
1 parent e21a2f6 commit 8210072

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

tests/e2e/Adapter/Scopes/AttributeTests.php

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1650,6 +1650,77 @@ public function testArrayAttribute(): void
16501650
Query::contains('pref', ['Joe'])
16511651
]);
16521652
$this->assertCount(1, $documents);
1653+
1654+
// containsAny tests — should behave identically to contains
1655+
1656+
$documents = $database->find($collection, [
1657+
Query::containsAny('tv_show', ['love'])
1658+
]);
1659+
$this->assertCount(1, $documents);
1660+
1661+
$documents = $database->find($collection, [
1662+
Query::containsAny('names', ['Jake', 'Joe'])
1663+
]);
1664+
$this->assertCount(1, $documents);
1665+
1666+
$documents = $database->find($collection, [
1667+
Query::containsAny('numbers', [-1, 0, 999])
1668+
]);
1669+
$this->assertCount(1, $documents);
1670+
1671+
$documents = $database->find($collection, [
1672+
Query::containsAny('booleans', [false, true])
1673+
]);
1674+
$this->assertCount(1, $documents);
1675+
1676+
$documents = $database->find($collection, [
1677+
Query::containsAny('pref', ['Joe'])
1678+
]);
1679+
$this->assertCount(1, $documents);
1680+
1681+
// containsAny with no matching values
1682+
$documents = $database->find($collection, [
1683+
Query::containsAny('names', ['Jake', 'Unknown'])
1684+
]);
1685+
$this->assertCount(0, $documents);
1686+
1687+
// containsAll tests on array attributes
1688+
1689+
// All values present in names array
1690+
$documents = $database->find($collection, [
1691+
Query::containsAll('names', ['Joe', 'Antony'])
1692+
]);
1693+
$this->assertCount(1, $documents);
1694+
1695+
// One value missing from names array
1696+
$documents = $database->find($collection, [
1697+
Query::containsAll('names', ['Joe', 'Jake'])
1698+
]);
1699+
$this->assertCount(0, $documents);
1700+
1701+
// All values present in numbers array
1702+
$documents = $database->find($collection, [
1703+
Query::containsAll('numbers', [0, 100, -1])
1704+
]);
1705+
$this->assertCount(1, $documents);
1706+
1707+
// One value missing from numbers array
1708+
$documents = $database->find($collection, [
1709+
Query::containsAll('numbers', [0, 999])
1710+
]);
1711+
$this->assertCount(0, $documents);
1712+
1713+
// Single value containsAll — should match
1714+
$documents = $database->find($collection, [
1715+
Query::containsAll('booleans', [false])
1716+
]);
1717+
$this->assertCount(1, $documents);
1718+
1719+
// Boolean value not present
1720+
$documents = $database->find($collection, [
1721+
Query::containsAll('booleans', [true])
1722+
]);
1723+
$this->assertCount(0, $documents);
16531724
}
16541725
}
16551726

0 commit comments

Comments
 (0)