/** * @test * @depends persist_for_new_is_scheduled_for_insert */ public function getDocumentChangeSet_includes_expected_changes_for_new() { $uow = $this->manager->getUnitOfWork(); $c = new Contact(); $this->manager->persist($c); $md = $this->manager->getClassMetadata(Contact::class); $c->name = "Sydney"; $uow->computeChangeSet($md, $c); $cs = $uow->getDocumentChangeSet($c); $this->assertEquals(['name', 'height', 'birthday', 'active'], array_keys($cs)); $this->assertEquals([null, 'Sydney'], $cs['name']); $this->assertEquals([null, null], $cs['height']); }
/** * @test */ public function computeChangeSet_generates_for_all_owning_associations() { $c = new Contact(); $c->name = "Sydney"; $em = new EmailAddress(); $em->type = "work"; $em->email = "*****@*****.**"; $c->setEmail($em); $this->manager->persist($c); $uow = $this->manager->getUnitOfWork(); $this->assertTrue($uow->isScheduledForInsert($c)); $this->assertTrue($uow->isScheduledForInsert($em)); $uow->computeChangeSets(); $cs = $uow->getDocumentChangeSet($c); $this->assertEquals(['name', 'email', 'phones'], array_keys($cs)); $cs = $uow->getDocumentChangeSet($em); }
/** * @test */ public function getDocumentChangeSet_includes_embedded_list_for_new() { $uow = $this->manager->getUnitOfWork(); $c = new Contact(); $this->manager->persist($c); $c->name = "Sydney"; $phone = new Phone(); $phone->type = "work"; $phone->phoneNumber = "4804441919"; $c->phones[] = $phone; $md = $this->manager->getClassMetadata(Contact::class); $uow->computeChangeSet($md, $c); $cs = $uow->getDocumentChangeSet($c); $this->assertEquals(['name', 'email', 'phones'], array_keys($cs)); }