/**
  * @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));
 }