Skip to content

Commit 1f0ec39

Browse files
added testcases for mismatching for update and create bulk
1 parent 1fbdacc commit 1f0ec39

File tree

1 file changed

+57
-32
lines changed

1 file changed

+57
-32
lines changed

tests/e2e/Adapter/Scopes/DocumentTests.php

Lines changed: 57 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -369,38 +369,6 @@ public function testCreateDocuments(): void
369369
$this->assertIsInt($document->getAttribute('bigint'));
370370
$this->assertEquals(9223372036854775807, $document->getAttribute('bigint'));
371371
}
372-
373-
// with different set of attributes
374-
$colName = "docs_with_diff";
375-
$database->createCollection($colName);
376-
$database->createAttribute($colName, 'key', Database::VAR_STRING, 50, true);
377-
$database->createAttribute($colName, 'value', Database::VAR_STRING, 50, false);
378-
$permissions = [Permission::read(Role::any()), Permission::write(Role::any()),Permission::update(Role::any())];
379-
$docs = [
380-
new Document([
381-
'$id' => 'doc1',
382-
'key' => 'doc1',
383-
]),
384-
new Document([
385-
'$id' => 'doc2',
386-
'key' => 'doc2',
387-
]),
388-
new Document([
389-
'$id' => 'doc3',
390-
'$permissions' => $permissions,
391-
'key' => 'doc3',
392-
'value' => 'test'
393-
]),
394-
];
395-
$this->assertEquals(3, $database->createDocuments($colName, $docs));
396-
// we should get only one document as read permission provided to the last document only
397-
$addedDocs = $database->find($colName);
398-
$this->assertCount(1, $addedDocs);
399-
$doc = $addedDocs[0];
400-
$this->assertEquals('doc3', $doc->getId());
401-
$this->assertNotEmpty($doc->getPermissions());
402-
$this->assertCount(3, $doc->getPermissions());
403-
$database->deleteCollection($colName);
404372
}
405373

406374
public function testCreateDocumentsWithAutoIncrement(): void
@@ -5878,4 +5846,61 @@ public function testUpdateDocumentsCount(): void
58785846

58795847
$database->deleteCollection($collectionName);
58805848
}
5849+
5850+
public function testCreateUpdateDocumentsMismatch()
5851+
{
5852+
/** @var Database $database */
5853+
$database = static::getDatabase();
5854+
5855+
// with different set of attributes
5856+
$colName = "docs_with_diff";
5857+
$database->createCollection($colName);
5858+
$database->createAttribute($colName, 'key', Database::VAR_STRING, 50, true);
5859+
$database->createAttribute($colName, 'value', Database::VAR_STRING, 50, false, 'value');
5860+
$permissions = [Permission::read(Role::any()), Permission::write(Role::any()),Permission::update(Role::any())];
5861+
$docs = [
5862+
new Document([
5863+
'$id' => 'doc1',
5864+
'key' => 'doc1',
5865+
]),
5866+
new Document([
5867+
'$id' => 'doc2',
5868+
'key' => 'doc2',
5869+
'value' => 'test',
5870+
]),
5871+
new Document([
5872+
'$id' => 'doc3',
5873+
'$permissions' => $permissions,
5874+
'key' => 'doc3'
5875+
]),
5876+
];
5877+
$this->assertEquals(3, $database->createDocuments($colName, $docs));
5878+
// we should get only one document as read permission provided to the last document only
5879+
$addedDocs = $database->find($colName);
5880+
$this->assertCount(1, $addedDocs);
5881+
$doc = $addedDocs[0];
5882+
$this->assertEquals('doc3', $doc->getId());
5883+
$this->assertNotEmpty($doc->getPermissions());
5884+
$this->assertCount(3, $doc->getPermissions());
5885+
5886+
$database->createDocument($colName, new Document([
5887+
'$id' => 'doc4',
5888+
'$permissions' => $permissions,
5889+
'key' => 'doc4'
5890+
]));
5891+
5892+
$this->assertEquals(2, $database->updateDocuments($colName, new Document(['key' => 'new doc'])));
5893+
$doc = $database->getDocument($colName, 'doc4');
5894+
$this->assertEquals('doc4', $doc->getId());
5895+
$this->assertEquals('value', $doc->getAttribute('value'));
5896+
5897+
$addedDocs = $database->find($colName);
5898+
$this->assertCount(2, $addedDocs);
5899+
foreach ($addedDocs as $doc) {
5900+
$this->assertNotEmpty($doc->getPermissions());
5901+
$this->assertCount(3, $doc->getPermissions());
5902+
$this->assertEquals('value', $doc->getAttribute('value'));
5903+
}
5904+
$database->deleteCollection($colName);
5905+
}
58815906
}

0 commit comments

Comments
 (0)