@@ -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