Witam,
stworzyłem klasę PermissionService w której dodaje nowe uprawienia do bazy danych. Publiczna metoda createPermission korzysta z prywatnych metod które zmieniają ciąg znaków na duże litery i dodaje prefix ROLE, i tutaj moje pytanie czy powinienem coś zrobić żeby napisać testy dla tych prywatnych metod?, czytałem że raczej nie powinno się tak robić.
<?php
declare(strict_types=1);
namespace App\Service;
use App\Entity\Permission;
use App\Repository\PermissionRepository;
use Doctrine\ORM\EntityManagerInterface;
class PermissionService
{
/**
* @var EntityManagerInterface
*/
private $entityManager;
/**
* @var PermissionRepository
*/
private $permissionRepository;
/**
* PermissionService constructor.
*
* @param EntityManagerInterface $entity
* @param PermissionRepository $permissionRepository
*/
public function __construct(
EntityManagerInterface $entity,
PermissionRepository $permissionRepository
) {
$this->entityManager = $entity;
$this->permissionRepository = $permissionRepository;
}
/**
* @param Permission $permission
*
* @return string|null
*/
public function createPermission(Permission $permission)
{
$name = $this->setUppercaseForPermission($permission->getName());
$name = $this->addPrefixForPermission($name);
$permission->setName($name);
$this->entityManager
->persist($permission);
$this->entityManager
->flush();
return $permission->getName();
}
/**
* @param string $permission
*
* @return string
*/
private function setUppercaseForPermission(string $permission): string
{
return strtoupper($permission);
}
/**
* @param string $permission
*
* @return string
*/
private function addPrefixForPermission(string $permission): string
{
if (strpos($permission, 'ROLE_') !== false || strpos($permission, 'ROLE') !== false) {
return $permission;
} else {
return "ROLE_" . $permission;
}
}
}