Skip to content

Commit 6bff126

Browse files
committed
Fix test stan
1 parent 58b4927 commit 6bff126

1 file changed

Lines changed: 101 additions & 69 deletions

File tree

tests/e2e/Adapter/Base.php

Lines changed: 101 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -2325,16 +2325,19 @@ public function testCreateDocumentsWithDifferentAttributes(): void
23252325
]),
23262326
];
23272327

2328-
$documents = static::getDatabase()->createDocuments($collection, $documents);
2328+
$results = [];
2329+
$count = static::getDatabase()->createDocuments($collection, $documents, onNext: function ($doc) use (&$results) {
2330+
$results[] = $doc;
2331+
});
23292332

2330-
$this->assertEquals(2, count($documents));
2333+
$this->assertEquals(2, $count);
23312334

2332-
$this->assertEquals('text📝', $documents[0]->getAttribute('string'));
2333-
$this->assertEquals(5, $documents[0]->getAttribute('integer'));
2334-
$this->assertEquals('not_default', $documents[0]->getAttribute('string_default'));
2335-
$this->assertEquals('text📝', $documents[1]->getAttribute('string'));
2336-
$this->assertNull($documents[1]->getAttribute('integer'));
2337-
$this->assertEquals('default', $documents[1]->getAttribute('string_default'));
2335+
$this->assertEquals('text📝', $results[0]->getAttribute('string'));
2336+
$this->assertEquals(5, $results[0]->getAttribute('integer'));
2337+
$this->assertEquals('not_default', $results[0]->getAttribute('string_default'));
2338+
$this->assertEquals('text📝', $results[1]->getAttribute('string'));
2339+
$this->assertNull($results[1]->getAttribute('integer'));
2340+
$this->assertEquals('default', $results[1]->getAttribute('string_default'));
23382341

23392342
/**
23402343
* Expect fail, mix of internalId and no internalId
@@ -2406,11 +2409,14 @@ public function testCreateOrUpdateDocuments(): void
24062409
]),
24072410
];
24082411

2409-
$documents = static::getDatabase()->createOrUpdateDocuments(__FUNCTION__, $documents);
2412+
$results = [];
2413+
$count = static::getDatabase()->createOrUpdateDocuments(__FUNCTION__, $documents, onNext: function ($doc) use (&$results) {
2414+
$results[] = $doc;
2415+
});
24102416

2411-
$this->assertEquals(2, count($documents));
2417+
$this->assertEquals(2, $count);
24122418

2413-
foreach ($documents as $document) {
2419+
foreach ($results as $document) {
24142420
$this->assertNotEmpty(true, $document->getId());
24152421
$this->assertIsString($document->getAttribute('string'));
24162422
$this->assertEquals('text📝', $document->getAttribute('string')); // Also makes sure an emoji is working
@@ -2439,11 +2445,14 @@ public function testCreateOrUpdateDocuments(): void
24392445
$documents[1]->setAttribute('string', 'new text📝');
24402446
$documents[1]->setAttribute('integer', 10);
24412447

2442-
$documents = static::getDatabase()->createOrUpdateDocuments(__FUNCTION__, $documents);
2448+
$results = [];
2449+
$count = static::getDatabase()->createOrUpdateDocuments(__FUNCTION__, $documents, onNext: function ($doc) use (&$results) {
2450+
$results[] = $doc;
2451+
});
24432452

2444-
$this->assertEquals(2, count($documents));
2453+
$this->assertEquals(2, $count);
24452454

2446-
foreach ($documents as $document) {
2455+
foreach ($results as $document) {
24472456
$this->assertNotEmpty(true, $document->getId());
24482457
$this->assertIsString($document->getAttribute('string'));
24492458
$this->assertEquals('new text📝', $document->getAttribute('string')); // Also makes sure an emoji is working
@@ -2576,13 +2585,17 @@ public function testCreateOrUpdateDocumentsPermissions(): void
25762585

25772586
static::getDatabase()->createOrUpdateDocuments(__FUNCTION__, [$document]);
25782587

2579-
$documents = static::getDatabase()->createOrUpdateDocuments(
2588+
$results = [];
2589+
$count = static::getDatabase()->createOrUpdateDocuments(
25802590
__FUNCTION__,
2581-
[$document->setAttribute('string', 'updated')]
2591+
[$document->setAttribute('string', 'updated')],
2592+
onNext: function ($doc) use (&$results) {
2593+
$results[] = $doc;
2594+
}
25822595
);
25832596

2584-
$this->assertEquals(1, count($documents));
2585-
$this->assertEquals('updated', $documents[0]->getAttribute('string'));
2597+
$this->assertEquals(1, $count);
2598+
$this->assertEquals('updated', $results[0]->getAttribute('string'));
25862599

25872600
$document = new Document([
25882601
'$id' => 'third',
@@ -2602,13 +2615,17 @@ public function testCreateOrUpdateDocumentsPermissions(): void
26022615
Permission::delete(Role::user('user1')),
26032616
];
26042617

2605-
$documents = static::getDatabase()->createOrUpdateDocuments(
2618+
$results = [];
2619+
$count = static::getDatabase()->createOrUpdateDocuments(
26062620
__FUNCTION__,
2607-
[$document->setAttribute('$permissions', $newPermissions)]
2621+
[$document->setAttribute('$permissions', $newPermissions)],
2622+
onNext: function ($doc) use (&$results) {
2623+
$results[] = $doc;
2624+
}
26082625
);
26092626

2610-
$this->assertEquals(1, count($documents));
2611-
$this->assertEquals($newPermissions, $documents[0]->getPermissions());
2627+
$this->assertEquals(1, $count);
2628+
$this->assertEquals($newPermissions, $results[0]->getPermissions());
26122629

26132630
$document = static::getDatabase()->getDocument(__FUNCTION__, 'third');
26142631

@@ -16783,39 +16800,45 @@ public function testDeleteBulkDocuments(): void
1678316800
*/
1678416801
$selects = ['$internalId', '$id', '$collection', '$permissions', '$updatedAt'];
1678516802

16786-
$this->assertCount(2, static::getDatabase()->deleteDocuments(
16787-
'bulk_delete',
16788-
[
16803+
$count = static::getDatabase()->deleteDocuments(
16804+
collection: 'bulk_delete',
16805+
queries: [
1678916806
Query::select([...$selects, '$createdAt']),
1679016807
Query::cursorAfter($docs[6]),
1679116808
Query::greaterThan('$createdAt', '2000-01-01'),
1679216809
Query::orderAsc('$createdAt'),
1679316810
Query::orderAsc(),
1679416811
Query::limit(2),
1679516812
],
16796-
1
16797-
));
16813+
batchSize: 1
16814+
);
16815+
16816+
$this->assertEquals(2, $count);
1679816817

1679916818
// TEST: Bulk Delete All Documents
16800-
$this->assertCount(8, static::getDatabase()->deleteDocuments('bulk_delete'));
16819+
$this->assertEquals(8, static::getDatabase()->deleteDocuments('bulk_delete'));
1680116820

1680216821
$docs = static::getDatabase()->find('bulk_delete');
1680316822
$this->assertCount(0, $docs);
1680416823

1680516824
// TEST: Bulk delete documents with queries.
1680616825
$this->propagateBulkDocuments('bulk_delete');
1680716826

16808-
$modified = static::getDatabase()->deleteDocuments('bulk_delete', [
16827+
$results = [];
16828+
$count = static::getDatabase()->deleteDocuments('bulk_delete', [
1680916829
Query::greaterThanEqual('integer', 5)
16810-
]);
16811-
$this->assertCount(5, $modified);
16830+
], onNext: function ($doc) use (&$results) {
16831+
$results[] = $doc;
16832+
});
16833+
16834+
$this->assertEquals(5, $count);
1681216835

16813-
foreach ($modified as $document) {
16836+
foreach ($results as $document) {
1681416837
$this->assertGreaterThanOrEqual(5, $document->getAttribute('integer'));
1681516838
}
1681616839

1681716840
$docs = static::getDatabase()->find('bulk_delete');
16818-
$this->assertCount(5, $docs);
16841+
$this->assertEquals(5, $docs);
1681916842

1682016843
// TEST (FAIL): Can't delete documents in the past
1682116844
$oneHourAgo = (new \DateTime())->sub(new \DateInterval('PT1H'));
@@ -16843,30 +16866,32 @@ public function testDeleteBulkDocuments(): void
1684316866
Permission::delete(Role::any())
1684416867
], false);
1684516868

16846-
$this->assertCount(5, static::getDatabase()->deleteDocuments('bulk_delete'));
16847-
$this->assertEquals(0, count($this->getDatabase()->find('bulk_delete')));
16869+
$this->assertEquals(5, static::getDatabase()->deleteDocuments('bulk_delete'));
16870+
$this->assertEquals(0, \count($this->getDatabase()->find('bulk_delete')));
1684816871

1684916872
// TEST: Make sure we can't delete documents we don't have permissions for
1685016873
static::getDatabase()->updateCollection('bulk_delete', [
1685116874
Permission::create(Role::any()),
1685216875
], true);
1685316876
$this->propagateBulkDocuments('bulk_delete', documentSecurity: true);
1685416877

16855-
$this->assertCount(0, static::getDatabase()->deleteDocuments('bulk_delete'));
16878+
$this->assertEquals(0, static::getDatabase()->deleteDocuments('bulk_delete'));
1685616879

1685716880
$documents = Authorization::skip(function () {
1685816881
return static::getDatabase()->find('bulk_delete');
1685916882
});
1686016883

16861-
$this->assertCount(10, $documents);
16884+
$this->assertEquals(10, \count($documents));
1686216885

1686316886
static::getDatabase()->updateCollection('bulk_delete', [
1686416887
Permission::create(Role::any()),
1686516888
Permission::read(Role::any()),
1686616889
Permission::delete(Role::any())
1686716890
], false);
16891+
1686816892
static::getDatabase()->deleteDocuments('bulk_delete');
16869-
$this->assertEquals(0, count($this->getDatabase()->find('bulk_delete')));
16893+
16894+
$this->assertEquals(0, \count($this->getDatabase()->find('bulk_delete')));
1687016895

1687116896
// Teardown
1687216897
static::getDatabase()->deleteCollection('bulk_delete');
@@ -16906,30 +16931,30 @@ public function testDeleteBulkDocumentsQueries(): void
1690616931
// Test limit
1690716932
$this->propagateBulkDocuments('bulk_delete_queries');
1690816933

16909-
$this->assertCount(5, static::getDatabase()->deleteDocuments('bulk_delete_queries', [Query::limit(5)]));
16910-
$this->assertCount(5, static::getDatabase()->find('bulk_delete_queries'));
16934+
$this->assertEquals(5, static::getDatabase()->deleteDocuments('bulk_delete_queries', [Query::limit(5)]));
16935+
$this->assertEquals(5, static::getDatabase()->find('bulk_delete_queries'));
1691116936

16912-
$this->assertCount(5, static::getDatabase()->deleteDocuments('bulk_delete_queries', [Query::limit(5)]));
16913-
$this->assertCount(0, static::getDatabase()->find('bulk_delete_queries'));
16937+
$this->assertEquals(5, static::getDatabase()->deleteDocuments('bulk_delete_queries', [Query::limit(5)]));
16938+
$this->assertEquals(0, static::getDatabase()->find('bulk_delete_queries'));
1691416939

1691516940
// Test Limit more than batchSize
1691616941
$this->propagateBulkDocuments('bulk_delete_queries', Database::DELETE_BATCH_SIZE * 2);
16917-
$this->assertCount(Database::DELETE_BATCH_SIZE * 2, static::getDatabase()->find('bulk_delete_queries', [Query::limit(Database::DELETE_BATCH_SIZE * 2)]));
16918-
$this->assertCount(Database::DELETE_BATCH_SIZE + 2, static::getDatabase()->deleteDocuments('bulk_delete_queries', [Query::limit(Database::DELETE_BATCH_SIZE + 2)]));
16919-
$this->assertCount(Database::DELETE_BATCH_SIZE - 2, static::getDatabase()->find('bulk_delete_queries', [Query::limit(Database::DELETE_BATCH_SIZE * 2)]));
16920-
$this->assertCount(Database::DELETE_BATCH_SIZE - 2, $this->getDatabase()->deleteDocuments('bulk_delete_queries'));
16942+
$this->assertEquals(Database::DELETE_BATCH_SIZE * 2, static::getDatabase()->find('bulk_delete_queries', [Query::limit(Database::DELETE_BATCH_SIZE * 2)]));
16943+
$this->assertEquals(Database::DELETE_BATCH_SIZE + 2, static::getDatabase()->deleteDocuments('bulk_delete_queries', [Query::limit(Database::DELETE_BATCH_SIZE + 2)]));
16944+
$this->assertEquals(Database::DELETE_BATCH_SIZE - 2, static::getDatabase()->find('bulk_delete_queries', [Query::limit(Database::DELETE_BATCH_SIZE * 2)]));
16945+
$this->assertEquals(Database::DELETE_BATCH_SIZE - 2, $this->getDatabase()->deleteDocuments('bulk_delete_queries'));
1692116946

1692216947
// Test Offset
1692316948
$this->propagateBulkDocuments('bulk_delete_queries', 100);
16924-
$this->assertCount(50, static::getDatabase()->deleteDocuments('bulk_delete_queries', [Query::offset(50)]));
16949+
$this->assertEquals(50, static::getDatabase()->deleteDocuments('bulk_delete_queries', [Query::offset(50)]));
1692516950

1692616951
$docs = static::getDatabase()->find('bulk_delete_queries', [Query::limit(100)]);
16927-
$this->assertCount(50, $docs);
16952+
$this->assertEquals(50, \count($docs));
1692816953

16929-
$lastDoc = end($docs);
16954+
$lastDoc = \end($docs);
1693016955
$this->assertNotEmpty($lastDoc);
1693116956
$this->assertEquals('doc49', $lastDoc->getId());
16932-
$this->assertCount(50, static::getDatabase()->deleteDocuments('bulk_delete_queries'));
16957+
$this->assertEquals(50, static::getDatabase()->deleteDocuments('bulk_delete_queries'));
1693316958

1693416959
static::getDatabase()->deleteCollection('bulk_delete_queries');
1693516960
}
@@ -17515,14 +17540,18 @@ public function testUpdateDocuments(): void
1751517540
}
1751617541

1751717542
// Test Update half of the documents
17518-
$modified = static::getDatabase()->updateDocuments($collection, new Document([
17543+
$results = [];
17544+
$count = static::getDatabase()->updateDocuments($collection, new Document([
1751917545
'string' => 'text📝 updated',
1752017546
]), [
1752117547
Query::greaterThanEqual('integer', 5),
17522-
]);
17523-
$this->assertCount(5, $modified);
17548+
], onNext: function($doc) use (&$results) {
17549+
$results[] = $doc;
17550+
});
1752417551

17525-
foreach ($modified as $document) {
17552+
$this->assertEquals(5, $count);
17553+
17554+
foreach ($results as $document) {
1752617555
$this->assertEquals('text📝 updated', $document->getAttribute('string'));
1752717556
}
1752817557

@@ -17548,7 +17577,7 @@ public function testUpdateDocuments(): void
1754817577
}
1754917578

1755017579
// Test Update all documents
17551-
$this->assertCount(10, static::getDatabase()->updateDocuments($collection, new Document([
17580+
$this->assertEquals(10, static::getDatabase()->updateDocuments($collection, new Document([
1755217581
'string' => 'text📝 updated all',
1755317582
])));
1755417583

@@ -17565,7 +17594,7 @@ public function testUpdateDocuments(): void
1756517594

1756617595
try {
1756717596
$this->getDatabase()->withRequestTimestamp($oneHourAgo, function () use ($collection) {
17568-
return static::getDatabase()->updateDocuments($collection, new Document([
17597+
static::getDatabase()->updateDocuments($collection, new Document([
1756917598
'string' => 'text📝 updated all',
1757017599
]));
1757117600
});
@@ -17638,7 +17667,7 @@ public function testUpdateDocuments(): void
1763817667
});
1763917668

1764017669
// Test we can update more documents than batchSize
17641-
$this->assertCount(10, static::getDatabase()->updateDocuments($collection, new Document([
17670+
$this->assertEquals(10, static::getDatabase()->updateDocuments($collection, new Document([
1764217671
'string' => 'batchSize Test'
1764317672
]), batchSize: 2));
1764417673

@@ -17684,18 +17713,21 @@ public function testUpdateDocumentsQueries(): void
1768417713
// Test limit
1768517714
$this->propagateBulkDocuments($collection, 100);
1768617715

17687-
$this->assertCount(10, static::getDatabase()->updateDocuments($collection, new Document([
17716+
$this->assertEquals(10, static::getDatabase()->updateDocuments($collection, new Document([
1768817717
'text' => 'text📝 updated',
1768917718
]), [Query::limit(10)]));
17690-
$this->assertCount(10, static::getDatabase()->find($collection, [Query::equal('text', ['text📝 updated'])]));
17691-
$this->assertCount(100, static::getDatabase()->deleteDocuments($collection));
17692-
$this->assertCount(0, static::getDatabase()->find($collection));
17719+
17720+
$this->assertEquals(10, \count(static::getDatabase()->find($collection, [Query::equal('text', ['text📝 updated'])])));
17721+
$this->assertEquals(100, static::getDatabase()->deleteDocuments($collection));
17722+
$this->assertEquals(0, \count(static::getDatabase()->find($collection)));
1769317723

1769417724
// Test Offset
1769517725
$this->propagateBulkDocuments($collection, 100);
17696-
$this->assertCount(50, static::getDatabase()->updateDocuments($collection, new Document([
17726+
$this->assertEquals(50, static::getDatabase()->updateDocuments($collection, new Document([
1769717727
'text' => 'text📝 updated',
17698-
]), [Query::offset(50)]));
17728+
]), [
17729+
Query::offset(50),
17730+
]));
1769917731

1770017732
$docs = static::getDatabase()->find($collection, [Query::equal('text', ['text📝 updated']), Query::limit(100)]);
1770117733
$this->assertCount(50, $docs);
@@ -17704,7 +17736,7 @@ public function testUpdateDocumentsQueries(): void
1770417736
$this->assertNotEmpty($lastDoc);
1770517737
$this->assertEquals('doc99', $lastDoc->getId());
1770617738

17707-
$this->assertCount(100, static::getDatabase()->deleteDocuments($collection));
17739+
$this->assertEquals(100, static::getDatabase()->deleteDocuments($collection));
1770817740
}
1770917741

1771017742
public function testUpdateDocumentsPermissions(): void
@@ -17752,7 +17784,7 @@ public function testUpdateDocumentsPermissions(): void
1775217784
]));
1775317785
});
1775417786

17755-
$affected = static::getDatabase()->updateDocuments($collection, new Document([
17787+
$modified = static::getDatabase()->updateDocuments($collection, new Document([
1775617788
'$permissions' => [
1775717789
Permission::read(Role::user('user2')),
1775817790
Permission::create(Role::user('user2')),
@@ -17765,8 +17797,8 @@ public function testUpdateDocumentsPermissions(): void
1776517797
return static::getDatabase()->find($collection);
1776617798
});
1776717799

17768-
$this->assertCount(10, $affected);
17769-
$this->assertCount(11, $documents);
17800+
$this->assertEquals(10, $modified);
17801+
$this->assertEquals(11, \count($documents));
1777017802

1777117803
$modifiedDocuments = array_filter($documents, function (Document $document) {
1777217804
return $document->getAttribute('$permissions') == [
@@ -17793,7 +17825,7 @@ public function testUpdateDocumentsPermissions(): void
1779317825
Authorization::setRole(Role::user('user2')->toString());
1779417826

1779517827
// Test Bulk permission update with data
17796-
$affected = static::getDatabase()->updateDocuments($collection, new Document([
17828+
$modified = static::getDatabase()->updateDocuments($collection, new Document([
1779717829
'$permissions' => [
1779817830
Permission::read(Role::user('user3')),
1779917831
Permission::create(Role::user('user3')),
@@ -17803,7 +17835,7 @@ public function testUpdateDocumentsPermissions(): void
1780317835
'string' => 'text📝 updated',
1780417836
]));
1780517837

17806-
$this->assertCount(10, $affected);
17838+
$this->assertEquals(10, $modified);
1780717839

1780817840
$documents = Authorization::skip(function () use ($collection) {
1780917841
return $this->getDatabase()->find($collection);

0 commit comments

Comments
 (0)