AssignedGeneratorTest.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace Doctrine\Tests\ORM\Id;
  3. use Doctrine\ORM\Id\AssignedGenerator;
  4. require_once __DIR__ . '/../../TestInit.php';
  5. /**
  6. * AssignedGeneratorTest
  7. *
  8. * @author robo
  9. */
  10. class AssignedGeneratorTest extends \Doctrine\Tests\OrmTestCase
  11. {
  12. private $_em;
  13. private $_assignedGen;
  14. protected function setUp()
  15. {
  16. $this->_em = $this->_getTestEntityManager();
  17. $this->_assignedGen = new AssignedGenerator;
  18. }
  19. public function testThrowsExceptionIfIdNotAssigned()
  20. {
  21. try {
  22. $entity = new AssignedSingleIdEntity;
  23. $this->_assignedGen->generate($this->_em, $entity);
  24. $this->fail('Assigned generator did not throw exception even though ID was missing.');
  25. } catch (\Doctrine\ORM\ORMException $expected) {}
  26. try {
  27. $entity = new AssignedCompositeIdEntity;
  28. $this->_assignedGen->generate($this->_em, $entity);
  29. $this->fail('Assigned generator did not throw exception even though ID was missing.');
  30. } catch (\Doctrine\ORM\ORMException $expected) {}
  31. }
  32. public function testCorrectIdGeneration()
  33. {
  34. $entity = new AssignedSingleIdEntity;
  35. $entity->myId = 1;
  36. $id = $this->_assignedGen->generate($this->_em, $entity);
  37. $this->assertEquals(array('myId' => 1), $id);
  38. $entity = new AssignedCompositeIdEntity;
  39. $entity->myId2 = 2;
  40. $entity->myId1 = 4;
  41. $id = $this->_assignedGen->generate($this->_em, $entity);
  42. $this->assertEquals(array('myId1' => 4, 'myId2' => 2), $id);
  43. }
  44. }
  45. /** @Entity */
  46. class AssignedSingleIdEntity {
  47. /** @Id @Column(type="integer") */
  48. public $myId;
  49. }
  50. /** @Entity */
  51. class AssignedCompositeIdEntity {
  52. /** @Id @Column(type="integer") */
  53. public $myId1;
  54. /** @Id @Column(type="integer") */
  55. public $myId2;
  56. }