Skip to content

Commit 0183072

Browse files
committed
use entity manager and repository instead of object manager/repository
1 parent 8ac82c9 commit 0183072

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

testing/database.rst

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,18 @@ Suppose the class you want to test looks like this::
2020
namespace App\Salary;
2121

2222
use App\Entity\Employee;
23-
use Doctrine\Persistence\ObjectManager;
23+
use Doctrine\ORM\EntityManager;
2424

2525
class SalaryCalculator
2626
{
2727
public function __construct(
28-
private ObjectManager $objectManager,
28+
private EntityManager $entityManager,
2929
) {
3030
}
3131

3232
public function calculateTotalSalary(int $id): int
3333
{
34-
$employeeRepository = $this->objectManager
34+
$employeeRepository = $this->entityManager
3535
->getRepository(Employee::class);
3636
$employee = $employeeRepository->find($id);
3737

@@ -47,8 +47,8 @@ constructor, you can pass a mock object within a test::
4747

4848
use App\Entity\Employee;
4949
use App\Salary\SalaryCalculator;
50-
use Doctrine\Persistence\ObjectManager;
51-
use Doctrine\Persistence\ObjectRepository;
50+
use Doctrine\ORM\EntityManager;
51+
use Doctrine\ORM\EntityRepository;
5252
use PHPUnit\Framework\TestCase;
5353

5454
class SalaryCalculatorTest extends TestCase
@@ -60,20 +60,20 @@ constructor, you can pass a mock object within a test::
6060
$employee->setBonus(1100);
6161

6262
// Now, mock the repository so it returns the mock of the employee
63-
$employeeRepository = $this->createMock(ObjectRepository::class);
63+
$employeeRepository = $this->createMock(EntityRepository::class);
6464
$employeeRepository->expects($this->any())
6565
->method('find')
6666
->willReturn($employee);
6767

6868
// Last, mock the EntityManager to return the mock of the repository
6969
// (this is not needed if the class being tested injects the
70-
// repository it uses instead of the entire object manager)
71-
$objectManager = $this->createMock(ObjectManager::class);
72-
$objectManager->expects($this->any())
70+
// repository it uses instead of the entire entity manager)
71+
$entityManager = $this->createMock(EntityManager::class);
72+
$entityManager->expects($this->any())
7373
->method('getRepository')
7474
->willReturn($employeeRepository);
7575

76-
$salaryCalculator = new SalaryCalculator($objectManager);
76+
$salaryCalculator = new SalaryCalculator($entityManager);
7777
$this->assertEquals(2100, $salaryCalculator->calculateTotalSalary(1));
7878
}
7979
}
@@ -94,12 +94,12 @@ so, get the entity manager via the service container as follows::
9494
namespace App\Tests\Repository;
9595

9696
use App\Entity\Product;
97-
use Doctrine\Persistence\ObjectManager;
97+
use Doctrine\ORM\EntityManager;
9898
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
9999

100100
class ProductRepositoryTest extends KernelTestCase
101101
{
102-
private ObjectManager $entityManager;
102+
private EntityManager $entityManager;
103103

104104
protected function setUp(): void
105105
{

0 commit comments

Comments
 (0)