Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 9be0d0a

Browse filesBrowse files
committed
fix tests with Doctrine ORM 3.4+ on PHP < 8.4
1 parent 6069cd9 commit 9be0d0a
Copy full SHA for 9be0d0a

File tree

Expand file treeCollapse file tree

3 files changed

+36
-106
lines changed
Filter options
Expand file treeCollapse file tree

3 files changed

+36
-106
lines changed

‎src/Symfony/Bridge/Doctrine/Tests/Fixtures/SingleIntIdEntity.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Doctrine/Tests/Fixtures/SingleIntIdEntity.php
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use Doctrine\ORM\Mapping\Entity;
1717
use Doctrine\ORM\Mapping\Id;
1818

19-
#[Entity]
19+
#[Entity(repositoryClass: SingleIntIdEntityRepository::class)]
2020
class SingleIntIdEntity
2121
{
2222
#[Column(type: Types::JSON, nullable: true)]
+24Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Bridge\Doctrine\Tests\Fixtures;
13+
14+
use Doctrine\ORM\EntityRepository;
15+
16+
class SingleIntIdEntityRepository extends EntityRepository
17+
{
18+
public $result = null;
19+
20+
public function findByCustom()
21+
{
22+
return $this->result;
23+
}
24+
}

‎src/Symfony/Bridge/Doctrine/Tests/Validator/Constraints/UniqueEntityValidatorTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Doctrine/Tests/Validator/Constraints/UniqueEntityValidatorTest.php
+11-105Lines changed: 11 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@
1414
use Doctrine\Common\Collections\ArrayCollection;
1515
use Doctrine\DBAL\Types\Type;
1616
use Doctrine\ORM\EntityRepository;
17-
use Doctrine\ORM\Mapping\ClassMetadata;
1817
use Doctrine\ORM\Mapping\ClassMetadataInfo;
19-
use Doctrine\ORM\Mapping\PropertyAccessors\RawValuePropertyAccessor;
2018
use Doctrine\ORM\Tools\SchemaTool;
2119
use Doctrine\Persistence\ManagerRegistry;
2220
use Doctrine\Persistence\ObjectManager;
@@ -29,8 +27,8 @@
2927
use Symfony\Bridge\Doctrine\Tests\Fixtures\DoubleNameEntity;
3028
use Symfony\Bridge\Doctrine\Tests\Fixtures\DoubleNullableNameEntity;
3129
use Symfony\Bridge\Doctrine\Tests\Fixtures\Employee;
32-
use Symfony\Bridge\Doctrine\Tests\Fixtures\MockableRepository;
3330
use Symfony\Bridge\Doctrine\Tests\Fixtures\Person;
31+
use Symfony\Bridge\Doctrine\Tests\Fixtures\SingleIntIdEntityRepository;
3432
use Symfony\Bridge\Doctrine\Tests\Fixtures\SingleIntIdEntity;
3533
use Symfony\Bridge\Doctrine\Tests\Fixtures\SingleIntIdNoToStringEntity;
3634
use Symfony\Bridge\Doctrine\Tests\Fixtures\SingleIntIdStringWrapperNameEntity;
@@ -91,54 +89,6 @@ protected function createRegistryMock($em = null)
9189
return $registry;
9290
}
9391

94-
protected function createRepositoryMock()
95-
{
96-
return $this->getMockBuilder(MockableRepository::class)
97-
->disableOriginalConstructor()
98-
->onlyMethods(['find', 'findAll', 'findOneBy', 'findBy', 'getClassName', 'findByCustom'])
99-
->getMock();
100-
}
101-
102-
protected function createEntityManagerMock($repositoryMock)
103-
{
104-
$em = $this->createMock(ObjectManager::class);
105-
$em->expects($this->any())
106-
->method('getRepository')
107-
->willReturn($repositoryMock)
108-
;
109-
110-
$classMetadata = $this->createMock(
111-
class_exists(ClassMetadataInfo::class) ? ClassMetadataInfo::class : ClassMetadata::class
112-
);
113-
$classMetadata
114-
->expects($this->any())
115-
->method('hasField')
116-
->willReturn(true)
117-
;
118-
$refl = $this->createMock(\ReflectionProperty::class);
119-
$refl
120-
->method('getName')
121-
->willReturn('name')
122-
;
123-
$refl
124-
->method('getValue')
125-
->willReturn(true)
126-
;
127-
128-
if (property_exists(ClassMetadata::class, 'propertyAccessors')) {
129-
$classMetadata->propertyAccessors['name'] = RawValuePropertyAccessor::fromReflectionProperty($refl);
130-
} else {
131-
$classMetadata->reflFields = ['name' => $refl];
132-
}
133-
134-
$em->expects($this->any())
135-
->method('getClassMetadata')
136-
->willReturn($classMetadata)
137-
;
138-
139-
return $em;
140-
}
141-
14292
protected function createValidator(): UniqueEntityValidator
14393
{
14494
return new UniqueEntityValidator($this->registry);
@@ -398,13 +348,7 @@ public function testValidateUniquenessWithValidCustomErrorPath()
398348
*/
399349
public function testValidateUniquenessUsingCustomRepositoryMethod(UniqueEntity $constraint)
400350
{
401-
$repository = $this->createRepositoryMock();
402-
$repository->expects($this->once())
403-
->method('findByCustom')
404-
->willReturn([])
405-
;
406-
$this->em = $this->createEntityManagerMock($repository);
407-
$this->registry = $this->createRegistryMock($this->em);
351+
$this->em->getRepository(SingleIntIdEntity::class)->result = [];
408352
$this->validator = $this->createValidator();
409353
$this->validator->initialize($this->context);
410354

@@ -422,22 +366,12 @@ public function testValidateUniquenessWithUnrewoundArray(UniqueEntity $constrain
422366
{
423367
$entity = new SingleIntIdEntity(1, 'foo');
424368

425-
$repository = $this->createRepositoryMock();
426-
$repository->expects($this->once())
427-
->method('findByCustom')
428-
->willReturnCallback(
429-
function () use ($entity) {
430-
$returnValue = [
431-
$entity,
432-
];
433-
next($returnValue);
434-
435-
return $returnValue;
436-
}
437-
)
438-
;
439-
$this->em = $this->createEntityManagerMock($repository);
440-
$this->registry = $this->createRegistryMock($this->em);
369+
$returnValue = [
370+
$entity,
371+
];
372+
next($returnValue);
373+
374+
$this->em->getRepository(SingleIntIdEntity::class)->result = $returnValue;
441375
$this->validator = $this->createValidator();
442376
$this->validator->initialize($this->context);
443377

@@ -470,13 +404,7 @@ public function testValidateResultTypes($entity1, $result)
470404
'repositoryMethod' => 'findByCustom',
471405
]);
472406

473-
$repository = $this->createRepositoryMock();
474-
$repository->expects($this->once())
475-
->method('findByCustom')
476-
->willReturn($result)
477-
;
478-
$this->em = $this->createEntityManagerMock($repository);
479-
$this->registry = $this->createRegistryMock($this->em);
407+
$this->em->getRepository(SingleIntIdEntity::class)->result = $result;
480408
$this->validator = $this->createValidator();
481409
$this->validator->initialize($this->context);
482410

@@ -592,9 +520,6 @@ public function testAssociatedEntityWithNull()
592520

593521
public function testValidateUniquenessWithArrayValue()
594522
{
595-
$repository = $this->createRepositoryMock();
596-
$this->repositoryFactory->setRepository($this->em, SingleIntIdEntity::class, $repository);
597-
598523
$constraint = new UniqueEntity([
599524
'message' => 'myMessage',
600525
'fields' => ['phoneNumbers'],
@@ -605,10 +530,7 @@ public function testValidateUniquenessWithArrayValue()
605530
$entity1 = new SingleIntIdEntity(1, 'foo');
606531
$entity1->phoneNumbers[] = 123;
607532

608-
$repository->expects($this->once())
609-
->method('findByCustom')
610-
->willReturn([$entity1])
611-
;
533+
$this->em->getRepository(SingleIntIdEntity::class)->result = $entity1;
612534

613535
$this->em->persist($entity1);
614536
$this->em->flush();
@@ -658,8 +580,6 @@ public function testEntityManagerNullObject()
658580
// no "em" option set
659581
]);
660582

661-
$this->em = null;
662-
$this->registry = $this->createRegistryMock($this->em);
663583
$this->validator = $this->createValidator();
664584
$this->validator->initialize($this->context);
665585

@@ -673,14 +593,6 @@ public function testEntityManagerNullObject()
673593

674594
public function testValidateUniquenessOnNullResult()
675595
{
676-
$repository = $this->createRepositoryMock();
677-
$repository
678-
->method('find')
679-
->willReturn(null)
680-
;
681-
682-
$this->em = $this->createEntityManagerMock($repository);
683-
$this->registry = $this->createRegistryMock($this->em);
684596
$this->validator = $this->createValidator();
685597
$this->validator->initialize($this->context);
686598

@@ -861,13 +773,7 @@ public function testValidateUniquenessWithEmptyIterator($entity, $result)
861773
'repositoryMethod' => 'findByCustom',
862774
]);
863775

864-
$repository = $this->createRepositoryMock();
865-
$repository->expects($this->once())
866-
->method('findByCustom')
867-
->willReturn($result)
868-
;
869-
$this->em = $this->createEntityManagerMock($repository);
870-
$this->registry = $this->createRegistryMock($this->em);
776+
$this->em->getRepository(SingleIntIdEntity::class)->result = $result;
871777
$this->validator = $this->createValidator();
872778
$this->validator->initialize($this->context);
873779

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.