@@ -16581,6 +16581,72 @@ public function testSharedTablesTenantPerDocument(): void
1658116581 } catch (\Throwable) {
1658216582 // Expected
1658316583 }
16584+
16585+ // Upsert new documents with different tenants
16586+ $doc4Id = ID::unique();
16587+ $doc5Id = ID::unique();
16588+ $database
16589+ ->setTenant(null)
16590+ ->setTenantPerDocument(true)
16591+ ->createOrUpdateDocuments(__FUNCTION__, [new Document([
16592+ '$id' => $doc4Id,
16593+ '$tenant' => 4,
16594+ 'name' => 'Superman4',
16595+ ]), new Document([
16596+ '$id' => $doc5Id,
16597+ '$tenant' => 5,
16598+ 'name' => 'Superman5',
16599+ ])]);
16600+
16601+ // Set to tenant 4 and read
16602+ $doc = $database
16603+ ->setTenantPerDocument(false)
16604+ ->setTenant(4)
16605+ ->getDocument(__FUNCTION__, $doc4Id);
16606+
16607+ $this->assertEquals('Superman4', $doc['name']);
16608+ $this->assertEquals(4, $doc->getTenant());
16609+
16610+ // Set to tenant 5 and read
16611+ $doc = $database
16612+ ->setTenantPerDocument(false)
16613+ ->setTenant(5)
16614+ ->getDocument(__FUNCTION__, $doc5Id);
16615+
16616+ $this->assertEquals('Superman5', $doc['name']);
16617+ $this->assertEquals(5, $doc->getTenant());
16618+
16619+ // Update names via upsert
16620+ $database
16621+ ->setTenant(null)
16622+ ->setTenantPerDocument(true)
16623+ ->createOrUpdateDocuments(__FUNCTION__, [new Document([
16624+ '$id' => $doc4Id,
16625+ '$tenant' => 4,
16626+ 'name' => 'Superman4 updated',
16627+ ]), new Document([
16628+ '$id' => $doc5Id,
16629+ '$tenant' => 5,
16630+ 'name' => 'Superman5 updated',
16631+ ])]);
16632+
16633+ // Set to tenant 4 and read
16634+ $doc = $database
16635+ ->setTenantPerDocument(false)
16636+ ->setTenant(4)
16637+ ->getDocument(__FUNCTION__, $doc4Id);
16638+
16639+ $this->assertEquals('Superman4 updated', $doc['name']);
16640+ $this->assertEquals(4, $doc->getTenant());
16641+
16642+ // Set to tenant 5 and read
16643+ $doc = $database
16644+ ->setTenantPerDocument(false)
16645+ ->setTenant(5)
16646+ ->getDocument(__FUNCTION__, $doc5Id);
16647+
16648+ $this->assertEquals('Superman5 updated', $doc['name']);
16649+ $this->assertEquals(5, $doc->getTenant());
1658416650 }
1658516651
1658616652 // Reset instance
0 commit comments