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