use dataMap also in first test function
This commit is contained in:
parent
6d40859228
commit
ad3b9de4b8
@ -294,17 +294,20 @@ abstract class AbstractHydrator
|
||||
$dqlAlias = $cacheKeyInfo['dqlAlias'];
|
||||
$type = $cacheKeyInfo['type'];
|
||||
|
||||
var_dump($dqlAlias);
|
||||
var_dump($cacheKeyInfo);
|
||||
echo "\n\n\n";
|
||||
|
||||
if(
|
||||
isset($cacheKeyInfo['discriminatorColumn']) &&
|
||||
isset($data[$cacheKeyInfo['discriminatorColumn']]) &&
|
||||
$data[$cacheKeyInfo['discriminatorColumn']] != $cacheKeyInfo['discriminatorValue']
|
||||
){
|
||||
break;
|
||||
}
|
||||
// in an inheritance hierarchy the same field could be defined several times.
|
||||
// We overwrite this value so long we don't have a non-null value, that value we keep.
|
||||
// Per definition it cannot be that a field is defined several times and has several values.
|
||||
if (!empty($rowData['data'][$dqlAlias][$fieldName])) {
|
||||
if (isset($rowData['data'][$dqlAlias][$fieldName])) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
$rowData['data'][$dqlAlias][$fieldName] = $type
|
||||
? $type->convertToPHPValue($value, $this->_platform)
|
||||
: $value;
|
||||
@ -379,13 +382,23 @@ abstract class AbstractHydrator
|
||||
$classMetadata = $this->getClassMetadata($this->_rsm->declaringClasses[$key]);
|
||||
$fieldName = $this->_rsm->fieldMappings[$key];
|
||||
$fieldMapping = $classMetadata->fieldMappings[$fieldName];
|
||||
$ownerMap = $this->_rsm->columnOwnerMap[$key];
|
||||
|
||||
return $this->_cache[$key] = [
|
||||
'isIdentifier' => in_array($fieldName, $classMetadata->identifier),
|
||||
'fieldName' => $fieldName,
|
||||
'type' => Type::getType($fieldMapping['type']),
|
||||
'dqlAlias' => $this->_rsm->columnOwnerMap[$key],
|
||||
$returnArray = [
|
||||
'isIdentifier' => in_array($fieldName, $classMetadata->identifier),
|
||||
'fieldName' => $fieldName,
|
||||
'type' => Type::getType($fieldMapping['type']),
|
||||
'dqlAlias' => $ownerMap,
|
||||
|
||||
];
|
||||
if( !empty($classMetadata->parentClasses)){
|
||||
$returnArray += [
|
||||
'discriminatorColumn' => $this->_rsm->discriminatorColumns[$ownerMap],
|
||||
'discriminatorValue' => $classMetadata->discriminatorValue
|
||||
];
|
||||
}
|
||||
|
||||
return $this->_cache[$key] = $returnArray;
|
||||
|
||||
case (isset($this->_rsm->newObjectMappings[$key])):
|
||||
// WARNING: A NEW object is also a scalar, so it must be declared before!
|
||||
|
@ -38,19 +38,18 @@ class DDC6303Test extends \Doctrine\Tests\OrmFunctionalTestCase
|
||||
|
||||
$repository = $this->_em->getRepository(DDC6303Contract::class);
|
||||
|
||||
$dataMap = [
|
||||
$contractA->id => $contractAData,
|
||||
$contractB->id => $contractBData
|
||||
];
|
||||
|
||||
$contracts = $repository->createQueryBuilder('p')
|
||||
->getQuery()->getResult();
|
||||
->where('p.id IN(:ids)')
|
||||
->setParameter('ids', array_keys($dataMap))
|
||||
->getQuery()->getResult();
|
||||
|
||||
foreach( $contracts as $contract ){
|
||||
switch( $contract->id ){
|
||||
case $contractA->id:
|
||||
static::assertEquals($contract->originalData, $contractAData);
|
||||
break;
|
||||
|
||||
case $contractB->id:
|
||||
static::assertEquals($contract->originalData, $contractBData);
|
||||
break;
|
||||
}
|
||||
static::assertEquals($contract->originalData, $dataMap[$contract->id], 'contract ' . get_class($contract) . ' not equals to original');
|
||||
}
|
||||
}
|
||||
|
||||
@ -92,8 +91,6 @@ class DDC6303Test extends \Doctrine\Tests\OrmFunctionalTestCase
|
||||
->setParameter('ids', array_keys($dataMap))
|
||||
->getQuery()->getResult();
|
||||
|
||||
|
||||
|
||||
foreach( $contracts as $contract ){
|
||||
static::assertEquals($contract->originalData, $dataMap[$contract->id], 'contract ' . get_class($contract) . ' not equals to original');
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user