| @@ 25-46 (lines=22) @@ | ||
| 22 | * @expectedException \Doctrine\ORM\Internal\Hydration\HydrationException |
|
| 23 | * @expectedExceptionMessage The discriminator column "discr" is missing for "Doctrine\Tests\Models\Company\CompanyPerson" using the DQL alias "p". |
|
| 24 | */ |
|
| 25 | public function testMissingDiscriminatorColumnException() |
|
| 26 | { |
|
| 27 | $rsm = new ResultSetMapping; |
|
| 28 | ||
| 29 | $rsm->addEntityResult(CompanyPerson::class, 'p'); |
|
| 30 | $rsm->addFieldResult('p', 'p__id', 'id'); |
|
| 31 | $rsm->addFieldResult('p', 'p__name', 'name'); |
|
| 32 | $rsm->addMetaResult('p ', 'discr', 'discr', false, Type::getType('string')); |
|
| 33 | $rsm->setDiscriminatorColumn('p', 'discr'); |
|
| 34 | ||
| 35 | $resultSet = [ |
|
| 36 | [ |
|
| 37 | 'u__id' => '1', |
|
| 38 | 'u__name' => 'Fabio B. Silva' |
|
| 39 | ], |
|
| 40 | ]; |
|
| 41 | ||
| 42 | $stmt = new HydratorMockStatement($resultSet); |
|
| 43 | $hydrator = new SimpleObjectHydrator($this->em); |
|
| 44 | ||
| 45 | $hydrator->hydrateAll($stmt, $rsm); |
|
| 46 | } |
|
| 47 | ||
| 48 | public function testExtraFieldInResultSetShouldBeIgnore() |
|
| 49 | { |
|
| @@ 81-103 (lines=23) @@ | ||
| 78 | * @expectedException \Doctrine\ORM\Internal\Hydration\HydrationException |
|
| 79 | * @expectedExceptionMessage The discriminator value "subworker" is invalid. It must be one of "person", "manager", "employee". |
|
| 80 | */ |
|
| 81 | public function testInvalidDiscriminatorValueException() |
|
| 82 | { |
|
| 83 | $rsm = new ResultSetMapping; |
|
| 84 | ||
| 85 | $rsm->addEntityResult(CompanyPerson::class, 'p'); |
|
| 86 | $rsm->addFieldResult('p', 'p__id', 'id'); |
|
| 87 | $rsm->addFieldResult('p', 'p__name', 'name'); |
|
| 88 | $rsm->addMetaResult('p', 'discr', 'discr', false, Type::getType('string')); |
|
| 89 | $rsm->setDiscriminatorColumn('p', 'discr'); |
|
| 90 | ||
| 91 | $resultSet = [ |
|
| 92 | [ |
|
| 93 | 'p__id' => '1', |
|
| 94 | 'p__name' => 'Fabio B. Silva', |
|
| 95 | 'discr' => 'subworker' |
|
| 96 | ], |
|
| 97 | ]; |
|
| 98 | ||
| 99 | $stmt = new HydratorMockStatement($resultSet); |
|
| 100 | $hydrator = new SimpleObjectHydrator($this->em); |
|
| 101 | ||
| 102 | $hydrator->hydrateAll($stmt, $rsm); |
|
| 103 | } |
|
| 104 | ||
| 105 | /** |
|
| 106 | * @group issue-5989 |
|
| @@ 1962-1983 (lines=22) @@ | ||
| 1959 | * @expectedException \Doctrine\ORM\Internal\Hydration\HydrationException |
|
| 1960 | * @expectedExceptionMessage The discriminator value "subworker" is invalid. It must be one of "person", "manager", "employee". |
|
| 1961 | */ |
|
| 1962 | public function testInvalidDiscriminatorValueException() |
|
| 1963 | { |
|
| 1964 | $rsm = new ResultSetMapping; |
|
| 1965 | ||
| 1966 | $rsm->addEntityResult(CompanyPerson::class, 'p'); |
|
| 1967 | $rsm->addFieldResult('p', 'p__id', 'id'); |
|
| 1968 | $rsm->addFieldResult('p', 'p__name', 'name'); |
|
| 1969 | $rsm->addMetaResult('p', 'discr', 'discr', false, Type::getType('string')); |
|
| 1970 | $rsm->setDiscriminatorColumn('p', 'discr'); |
|
| 1971 | ||
| 1972 | $resultSet = [ |
|
| 1973 | [ |
|
| 1974 | 'p__id' => '1', |
|
| 1975 | 'p__name' => 'Fabio B. Silva', |
|
| 1976 | 'discr' => 'subworker' |
|
| 1977 | ], |
|
| 1978 | ]; |
|
| 1979 | ||
| 1980 | $stmt = new HydratorMockStatement($resultSet); |
|
| 1981 | $hydrator = new \Doctrine\ORM\Internal\Hydration\ObjectHydrator($this->em); |
|
| 1982 | $hydrator->hydrateAll($stmt, $rsm); |
|
| 1983 | } |
|
| 1984 | ||
| 1985 | public function testFetchJoinCollectionValuedAssociationWithDefaultArrayValue() |
|
| 1986 | { |
|