/**
  * @test
  */
 public function it_should_extract_embedded_fields()
 {
     $user = new HydrationUser();
     $user->setId(1);
     $user->setName('username');
     $embedded = new HydrationEmbedOne();
     $embedded->setId(1);
     $embedded->setName('name');
     $user->setEmbedOne($embedded);
     $strategy = $this->getStrategy($this->dm, $user, 'embedOne');
     $result = $strategy->extract($user->getEmbedOne());
     $this->assertEquals('name', $result['name']);
 }
 /**
  * @test
  */
 public function it_should_extract_a_document()
 {
     $creationDate = new \DateTime();
     $birthday = new \DateTime('1 january 2014');
     $user = new HydrationUser();
     $user->setId(1);
     $user->setName('user');
     $user->setCreatedAt($creationDate->getTimestamp());
     $user->setBirthday($birthday);
     $embedOne = new HydrationEmbedOne();
     $embedOne->setId(1);
     $embedOne->setName('name');
     $user->setEmbedOne($embedOne);
     $embedMany = new HydrationEmbedMany();
     $embedMany->setId(1);
     $embedMany->setName('name');
     $user->addEmbedMany(array($embedMany));
     $referenceOne = new HydrationReferenceOne();
     $referenceOne->setId(1);
     $referenceOne->setName('name');
     $user->setReferenceOne($referenceOne);
     $referenceMany = new HydrationEmbedMany();
     $referenceMany->setId(1);
     $referenceMany->setName('name');
     $user->addReferenceMany(array($referenceMany));
     $hydrator = new DoctrineObject($this->dm);
     $result = $hydrator->extract($user);
     $this->assertEquals(1, $result['id']);
     $this->assertEquals('user', $result['name']);
     $this->assertEquals($creationDate->getTimestamp(), $result['createdAt']);
     $this->assertEquals($birthday->getTimestamp(), $result['birthday']);
     $this->assertEquals(1, $result['embedOne']['id']);
     $this->assertEquals('name', $result['embedOne']['name']);
     $this->assertEquals(1, $result['embedMany'][0]['id']);
     $this->assertEquals('name', $result['embedMany'][0]['name']);
     $this->assertEquals(1, $result['referenceOne']);
     $this->assertEquals(1, $result['referenceMany'][0]);
 }