@@ -6012,71 +6012,72 @@ public function testCreatedByUpdatedBy(): void
60126012 'string ' => 'upserted_test2 ' ,
60136013 'number ' => 250
60146014 ]);
6015- $ upsertCount = $ database ->createOrUpdateDocuments ($ collection , [$ upsertDoc ]);
6016- $ this ->assertEquals (1 , $ upsertCount );
6017-
6018- $ upsertedDoc = $ database ->getDocument ($ collection , 'test2 ' );
6019- $ this ->assertEquals ('explicit_creator ' , $ upsertedDoc ->getCreatedBy ()); // Should preserve original creator
6020- $ this ->assertEquals ('test_user_2 ' , $ upsertedDoc ->getUpdatedBy ()); // Should update to current user
6021-
6022- $ upsertNewDoc = new Document ([
6023- '$id ' => 'test5 ' ,
6024- 'string ' => 'new_test5 ' ,
6025- 'number ' => 500 ,
6026- '$createdBy ' => 'new_creator ' ,
6027- '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6028- ]);
6029- $ upsertNewCount = $ database ->createOrUpdateDocuments ($ collection , [$ upsertNewDoc ]);
6030- $ this ->assertEquals (1 , $ upsertNewCount );
6031-
6032- $ newUpsertedDoc = $ database ->getDocument ($ collection , 'test5 ' );
6033- $ this ->assertEquals ('new_creator ' , $ newUpsertedDoc ->getCreatedBy ()); // Should use explicit creator
6034- $ this ->assertEquals ('test_user_2 ' , $ newUpsertedDoc ->getUpdatedBy ()); // Should use current user
6015+ if ($ database ->getAdapter ()->getSupportForUpserts ()) {
6016+ $ upsertCount = $ database ->createOrUpdateDocuments ($ collection , [$ upsertDoc ]);
6017+ $ this ->assertEquals (1 , $ upsertCount );
6018+
6019+ $ upsertedDoc = $ database ->getDocument ($ collection , 'test2 ' );
6020+ $ this ->assertEquals ('explicit_creator ' , $ upsertedDoc ->getCreatedBy ()); // Should preserve original creator
6021+ $ this ->assertEquals ('test_user_2 ' , $ upsertedDoc ->getUpdatedBy ()); // Should update to current user
6022+
6023+ $ upsertNewDoc = new Document ([
6024+ '$id ' => 'test5 ' ,
6025+ 'string ' => 'new_test5 ' ,
6026+ 'number ' => 500 ,
6027+ '$createdBy ' => 'new_creator ' ,
6028+ '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6029+ ]);
60356030
6031+ $ upsertNewCount = $ database ->createOrUpdateDocuments ($ collection , [$ upsertNewDoc ]);
6032+ $ this ->assertEquals (1 , $ upsertNewCount );
60366033
6037- $ bulkDocs = [
6038- new Document ([
6039- '$id ' => 'bulk1 ' ,
6040- 'string ' => 'bulk1 ' ,
6041- 'number ' => 600 ,
6042- '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6043- ]),
6044- new Document ([
6045- '$id ' => 'bulk2 ' ,
6046- 'string ' => 'bulk2 ' ,
6047- 'number ' => 700 ,
6048- '$createdBy ' => 'bulk_creator ' ,
6049- '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6050- ]),
6051- new Document ([
6052- '$id ' => 'bulk3 ' ,
6053- 'string ' => 'bulk3 ' ,
6054- 'number ' => 800 ,
6055- '$updatedBy ' => 'bulk_updater ' ,
6056- '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6057- ])
6058- ];
6059- $ bulkCount = $ database ->createDocuments ($ collection , $ bulkDocs );
6060- $ this ->assertEquals (3 , $ bulkCount );
6034+ $ newUpsertedDoc = $ database ->getDocument ($ collection , 'test5 ' );
6035+ $ this ->assertEquals ('new_creator ' , $ newUpsertedDoc ->getCreatedBy ()); // Should use explicit creator
6036+ $ this ->assertEquals ('test_user_2 ' , $ newUpsertedDoc ->getUpdatedBy ()); // Should use current user
60616037
6062- $ bulkDoc1 = $ database ->getDocument ($ collection , 'bulk1 ' );
6063- $ bulkDoc2 = $ database ->getDocument ($ collection , 'bulk2 ' );
6064- $ bulkDoc3 = $ database ->getDocument ($ collection , 'bulk3 ' );
60656038
6066- $ this ->assertEquals ('test_user_2 ' , $ bulkDoc1 ->getCreatedBy ());
6067- $ this ->assertEquals ('test_user_2 ' , $ bulkDoc1 ->getUpdatedBy ());
6039+ $ bulkDocs = [
6040+ new Document ([
6041+ '$id ' => 'bulk1 ' ,
6042+ 'string ' => 'bulk1 ' ,
6043+ 'number ' => 600 ,
6044+ '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6045+ ]),
6046+ new Document ([
6047+ '$id ' => 'bulk2 ' ,
6048+ 'string ' => 'bulk2 ' ,
6049+ 'number ' => 700 ,
6050+ '$createdBy ' => 'bulk_creator ' ,
6051+ '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6052+ ]),
6053+ new Document ([
6054+ '$id ' => 'bulk3 ' ,
6055+ 'string ' => 'bulk3 ' ,
6056+ 'number ' => 800 ,
6057+ '$updatedBy ' => 'bulk_updater ' ,
6058+ '$permissions ' => [Permission::read (Role::any ()), Permission::write (Role::any ()), Permission::update (Role::any ())]
6059+ ])
6060+ ];
6061+ $ bulkCount = $ database ->createDocuments ($ collection , $ bulkDocs );
6062+ $ this ->assertEquals (3 , $ bulkCount );
60686063
6069- $ this ->assertEquals ('bulk_creator ' , $ bulkDoc2 ->getCreatedBy ());
6070- $ this ->assertEquals ('test_user_2 ' , $ bulkDoc2 ->getUpdatedBy ());
6064+ $ bulkDoc1 = $ database ->getDocument ($ collection , 'bulk1 ' );
6065+ $ bulkDoc2 = $ database ->getDocument ($ collection , 'bulk2 ' );
6066+ $ bulkDoc3 = $ database ->getDocument ($ collection , 'bulk3 ' );
60716067
6072- $ this ->assertEquals ('test_user_2 ' , $ bulkDoc3 ->getCreatedBy ());
6073- $ this ->assertEquals ('bulk_updater ' , $ bulkDoc3 ->getUpdatedBy ());
6068+ $ this ->assertEquals ('test_user_2 ' , $ bulkDoc1 ->getCreatedBy ());
6069+ $ this ->assertEquals ('test_user_2 ' , $ bulkDoc1 ->getUpdatedBy ());
60746070
6075- $ finalAllDocs = $ database -> find ( $ collection );
6076- $ this ->assertCount ( 8 , $ finalAllDocs );
6071+ $ this -> assertEquals ( ' bulk_creator ' , $ bulkDoc2 -> getCreatedBy () );
6072+ $ this ->assertEquals ( ' test_user_2 ' , $ bulkDoc2 -> getUpdatedBy () );
60776073
6078- $ database -> deleteCollection ( $ collection );
6079- }
6074+ $ this -> assertEquals ( ' test_user_2 ' , $ bulkDoc3 -> getCreatedBy () );
6075+ $ this -> assertEquals ( ' bulk_updater ' , $ bulkDoc3 -> getUpdatedBy ());
60806076
6077+ $ finalAllDocs = $ database ->find ($ collection );
6078+ $ this ->assertCount (8 , $ finalAllDocs );
60816079
6080+ $ database ->deleteCollection ($ collection );
6081+ }
6082+ }
60826083}
0 commit comments