@@ -6104,71 +6104,72 @@ public function testCreatedByUpdatedBy(): void
61046104 'string ' => 'upserted_test2 ' ,
61056105 'number ' => 250
61066106 ]);
6107- $ upsertCount = $ database ->createOrUpdateDocuments ($ collection , [$ upsertDoc ]);
6108- $ this ->assertEquals (1 , $ upsertCount );
6109-
6110- $ upsertedDoc = $ database ->getDocument ($ collection , 'test2 ' );
6111- $ this ->assertEquals ('explicit_creator ' , $ upsertedDoc ->getCreatedBy ()); // Should preserve original creator
6112- $ this ->assertEquals ('test_user_2 ' , $ upsertedDoc ->getUpdatedBy ()); // Should update to current user
6113-
6114- $ upsertNewDoc = new Document ([
6115- '$id ' => 'test5 ' ,
6116- 'string ' => 'new_test5 ' ,
6117- 'number ' => 500 ,
6118- '$createdBy ' => 'new_creator ' ,
6119- '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6120- ]);
6121- $ upsertNewCount = $ database ->createOrUpdateDocuments ($ collection , [$ upsertNewDoc ]);
6122- $ this ->assertEquals (1 , $ upsertNewCount );
6123-
6124- $ newUpsertedDoc = $ database ->getDocument ($ collection , 'test5 ' );
6125- $ this ->assertEquals ('new_creator ' , $ newUpsertedDoc ->getCreatedBy ()); // Should use explicit creator
6126- $ this ->assertEquals ('test_user_2 ' , $ newUpsertedDoc ->getUpdatedBy ()); // Should use current user
6107+ if ($ database ->getAdapter ()->getSupportForUpserts ()) {
6108+ $ upsertCount = $ database ->createOrUpdateDocuments ($ collection , [$ upsertDoc ]);
6109+ $ this ->assertEquals (1 , $ upsertCount );
6110+
6111+ $ upsertedDoc = $ database ->getDocument ($ collection , 'test2 ' );
6112+ $ this ->assertEquals ('explicit_creator ' , $ upsertedDoc ->getCreatedBy ()); // Should preserve original creator
6113+ $ this ->assertEquals ('test_user_2 ' , $ upsertedDoc ->getUpdatedBy ()); // Should update to current user
6114+
6115+ $ upsertNewDoc = new Document ([
6116+ '$id ' => 'test5 ' ,
6117+ 'string ' => 'new_test5 ' ,
6118+ 'number ' => 500 ,
6119+ '$createdBy ' => 'new_creator ' ,
6120+ '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6121+ ]);
61276122
6123+ $ upsertNewCount = $ database ->createOrUpdateDocuments ($ collection , [$ upsertNewDoc ]);
6124+ $ this ->assertEquals (1 , $ upsertNewCount );
61286125
6129- $ bulkDocs = [
6130- new Document ([
6131- '$id ' => 'bulk1 ' ,
6132- 'string ' => 'bulk1 ' ,
6133- 'number ' => 600 ,
6134- '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6135- ]),
6136- new Document ([
6137- '$id ' => 'bulk2 ' ,
6138- 'string ' => 'bulk2 ' ,
6139- 'number ' => 700 ,
6140- '$createdBy ' => 'bulk_creator ' ,
6141- '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6142- ]),
6143- new Document ([
6144- '$id ' => 'bulk3 ' ,
6145- 'string ' => 'bulk3 ' ,
6146- 'number ' => 800 ,
6147- '$updatedBy ' => 'bulk_updater ' ,
6148- '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6149- ])
6150- ];
6151- $ bulkCount = $ database ->createDocuments ($ collection , $ bulkDocs );
6152- $ this ->assertEquals (3 , $ bulkCount );
6126+ $ newUpsertedDoc = $ database ->getDocument ($ collection , 'test5 ' );
6127+ $ this ->assertEquals ('new_creator ' , $ newUpsertedDoc ->getCreatedBy ()); // Should use explicit creator
6128+ $ this ->assertEquals ('test_user_2 ' , $ newUpsertedDoc ->getUpdatedBy ()); // Should use current user
61536129
6154- $ bulkDoc1 = $ database ->getDocument ($ collection , 'bulk1 ' );
6155- $ bulkDoc2 = $ database ->getDocument ($ collection , 'bulk2 ' );
6156- $ bulkDoc3 = $ database ->getDocument ($ collection , 'bulk3 ' );
61576130
6158- $ this ->assertEquals ('test_user_2 ' , $ bulkDoc1 ->getCreatedBy ());
6159- $ this ->assertEquals ('test_user_2 ' , $ bulkDoc1 ->getUpdatedBy ());
6131+ $ bulkDocs = [
6132+ new Document ([
6133+ '$id ' => 'bulk1 ' ,
6134+ 'string ' => 'bulk1 ' ,
6135+ 'number ' => 600 ,
6136+ '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6137+ ]),
6138+ new Document ([
6139+ '$id ' => 'bulk2 ' ,
6140+ 'string ' => 'bulk2 ' ,
6141+ 'number ' => 700 ,
6142+ '$createdBy ' => 'bulk_creator ' ,
6143+ '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6144+ ]),
6145+ new Document ([
6146+ '$id ' => 'bulk3 ' ,
6147+ 'string ' => 'bulk3 ' ,
6148+ 'number ' => 800 ,
6149+ '$updatedBy ' => 'bulk_updater ' ,
6150+ '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6151+ ])
6152+ ];
6153+ $ bulkCount = $ database ->createDocuments ($ collection , $ bulkDocs );
6154+ $ this ->assertEquals (3 , $ bulkCount );
61606155
6161- $ this ->assertEquals ('bulk_creator ' , $ bulkDoc2 ->getCreatedBy ());
6162- $ this ->assertEquals ('test_user_2 ' , $ bulkDoc2 ->getUpdatedBy ());
6156+ $ bulkDoc1 = $ database ->getDocument ($ collection , 'bulk1 ' );
6157+ $ bulkDoc2 = $ database ->getDocument ($ collection , 'bulk2 ' );
6158+ $ bulkDoc3 = $ database ->getDocument ($ collection , 'bulk3 ' );
61636159
6164- $ this ->assertEquals ('test_user_2 ' , $ bulkDoc3 ->getCreatedBy ());
6165- $ this ->assertEquals ('bulk_updater ' , $ bulkDoc3 ->getUpdatedBy ());
6160+ $ this ->assertEquals ('test_user_2 ' , $ bulkDoc1 ->getCreatedBy ());
6161+ $ this ->assertEquals ('test_user_2 ' , $ bulkDoc1 ->getUpdatedBy ());
61666162
6167- $ finalAllDocs = $ database -> find ( $ collection );
6168- $ this ->assertCount ( 8 , $ finalAllDocs );
6163+ $ this -> assertEquals ( ' bulk_creator ' , $ bulkDoc2 -> getCreatedBy () );
6164+ $ this ->assertEquals ( ' test_user_2 ' , $ bulkDoc2 -> getUpdatedBy () );
61696165
6170- $ database -> deleteCollection ( $ collection );
6171- }
6166+ $ this -> assertEquals ( ' test_user_2 ' , $ bulkDoc3 -> getCreatedBy () );
6167+ $ this -> assertEquals ( ' bulk_updater ' , $ bulkDoc3 -> getUpdatedBy ());
61726168
6169+ $ finalAllDocs = $ database ->find ($ collection );
6170+ $ this ->assertCount (8 , $ finalAllDocs );
61736171
6172+ $ database ->deleteCollection ($ collection );
6173+ }
6174+ }
61746175}
0 commit comments