Vincent GUFFON 3 년 전
부모
커밋
055ddc11ba
3개의 변경된 파일173개의 추가작업 그리고 0개의 파일을 삭제
  1. 87 0
      tests/Service/Access/AdminAccessUtilsTest.php
  2. 29 0
      tests/Service/Access/UtilsTest.php
  3. 57 0
      tests/Service/Core/ContactPointUtilsTest.php

+ 87 - 0
tests/Service/Access/AdminAccessUtilsTest.php

@@ -0,0 +1,87 @@
+<?php
+
+namespace App\Test\Service\Access;
+
+use App\ApiResources\Access\AdminAccess;
+use App\Entity\Access\Access;
+use App\Entity\Core\ContactPoint;
+use App\Entity\Organization\Organization;
+use App\Entity\Person\Person;
+use App\Service\Access\AdminAccessUtils;
+use App\Service\Access\Utils;
+use App\Service\Core\ContactPointUtils;
+use PHPUnit\Framework\TestCase;
+
+class AdminAccessUtilsTest extends TestCase
+{
+    private Organization $organization;
+    private AdminAccessUtils  $adminAccessUtils;
+    private ContactPointUtils $contactPointUtilsMock;
+    private Utils $accessUtilsMock;
+
+    public function setUp():void
+    {
+        $this->organization = new Organization();
+
+        $this->accessUtilsMock = $this->getMockBuilder(Utils::class)->disableOriginalConstructor()->getMock();
+        $this->contactPointUtilsMock = $this->getMockBuilder(ContactPointUtils::class)->disableOriginalConstructor()->getMock();
+
+        $this->adminAccessUtils = new AdminAccessUtils(
+            $this->accessUtilsMock,
+            $this->contactPointUtilsMock
+        );
+    }
+
+    /**
+     * @see AdminAccessUtils::getAdminAccess()
+     */
+    public function testGetAdminAccessWithoutAdministrator(){
+        $this->accessUtilsMock
+            ->method('getAdminAccess')
+            ->with($this->organization)
+            ->willReturn(null);
+
+        $this->assertNull($this->adminAccessUtils->getAdminAccess($this->organization));
+    }
+
+    /**
+     * @see AdminAccessUtils::getAdminAccess()
+     */
+    public function testGetAdminAccessWithoutContactPoint(){
+        $administrator = new Access();
+
+        $this->accessUtilsMock
+            ->method('getAdminAccess')
+            ->with($this->organization)
+            ->willReturn($administrator);
+
+        $this->contactPointUtilsMock
+            ->method('getPersonContactPointPrincipal')
+            ->with($administrator)
+            ->willReturn(null);
+
+        $this->assertNull($this->adminAccessUtils->getAdminAccess($this->organization));
+    }
+
+    /**
+     * @see AdminAccessUtils::getAdminAccess()
+     */
+    public function testGetAdminAccess(){
+        $person = new Person();
+        $administrator = new Access();
+        $administrator->setPerson($person);
+        $contactPoint = new ContactPoint();
+
+        $this->accessUtilsMock
+            ->method('getAdminAccess')
+            ->with($this->organization)
+            ->willReturn($administrator);
+
+        $this->contactPointUtilsMock
+            ->method('getPersonContactPointPrincipal')
+            ->with($administrator)
+            ->willReturn($contactPoint);
+
+        $this->assertInstanceOf(AdminAccess::class, $this->adminAccessUtils->getAdminAccess($this->organization));
+    }
+}

+ 29 - 0
tests/Service/Access/UtilsTest.php

@@ -3,6 +3,9 @@
 namespace App\Test\Service\Access;
 
 use App\Entity\Access\Access;
+use App\Entity\Organization\Organization;
+use App\Repository\Access\AccessRepository;
+use App\Service\Access\HandleOptionalsRoles;
 use App\Service\Access\Utils;
 use App\Service\ServiceIterator\OptionalsRolesIterator;
 use PHPUnit\Framework\TestCase;
@@ -11,6 +14,7 @@ use Symfony\Component\Security\Core\Role\RoleHierarchy;
 class UtilsTest extends TestCase
 {
     private Utils $utils;
+    private AccessRepository $accessRepositoryMock;
 
     public function setUp():void
     {
@@ -19,11 +23,14 @@ class UtilsTest extends TestCase
             ->method('getReachableRoleNames')
             ->willReturn(["ROLE_A", "ROLE_B"]);
 
+
         $optionalsRolesIteratorMock = $this->getMockBuilder(OptionalsRolesIterator::class)->disableOriginalConstructor()->getMock();
         $optionalsRolesIteratorMock
             ->method('getOptionalsRoles')
             ->willReturn(["ROLE_OPT"]);
 
+        $this->accessRepositoryMock = $this->getMockBuilder(AccessRepository::class)->disableOriginalConstructor()->getMock();
+
         $this->utils = new Utils($roleHierarchyMock, $optionalsRolesIteratorMock);
     }
 
@@ -86,4 +93,26 @@ class UtilsTest extends TestCase
 
         $this->assertEquals(['ROLE_A', 'ROLE_B'], $this->utils->getAllRoles($accessMock1));
     }
+
+    /**
+     * @see Utils::getAdminAccess()
+     */
+    public function testGetAdminAccess(){
+        $this->accessRepositoryMock
+            ->method('findOneBy')
+            ->willReturn(new Access());
+
+        $this->assertNotEmpty($this->utils->getAdminAccess(new Organization()));
+    }
+
+    /**
+     * @see Utils::getAdminAccess()
+     */
+    public function testGetAdminAccessNotFound(){
+        $this->accessRepositoryMock
+            ->method('findOneBy')
+            ->willReturn(null);
+
+        $this->assertNull($this->utils->getAdminAccess(new Organization()));
+    }
 }

+ 57 - 0
tests/Service/Core/ContactPointUtilsTest.php

@@ -0,0 +1,57 @@
+<?php
+
+namespace App\Test\Service\Access;
+
+use App\Entity\Access\Access;
+use App\Entity\Core\ContactPoint;
+use App\Entity\Person\Person;
+use App\Enum\Core\ContactPointTypeEnum;
+use App\Repository\Core\ContactPointRepository;
+use App\Service\Access\Utils;
+use App\Service\Core\ContactPointUtils;
+use PHPUnit\Framework\TestCase;
+
+class ContactPointUtilsTest extends TestCase
+{
+    private ContactPointUtils $contactPointUtils;
+    private ContactPointRepository $contactPointRepositoryMock;
+
+    public function setUp():void
+    {
+        $this->contactPointRepositoryMock = $this->getMockBuilder(ContactPointRepository::class)->disableOriginalConstructor()->getMock();
+
+        $this->contactPointUtils = new ContactPointUtils($this->contactPointRepositoryMock);
+    }
+
+    /**
+     * @see Utils::getPersonContactPointPrincipal()
+     */
+    public function testGetPersonContactPointPrincipal(){
+        $person = new Person();
+        $access = new Access();
+        $access->setPerson($person);
+
+        $this->contactPointRepositoryMock
+            ->method('getByTypeAndPerson')
+            ->with(ContactPointTypeEnum::PRINCIPAL()->getValue(), $access->getPerson())
+            ->willReturn(new ContactPoint());
+
+        $this->assertInstanceOf(ContactPoint::class, $this->contactPointUtils->getPersonContactPointPrincipal($access));
+    }
+
+    /**
+     * @see Utils::getPersonContactPointPrincipal()
+     */
+    public function testGetPersonContactPointPrincipalNotExist(){
+        $person = new Person();
+        $access = new Access();
+        $access->setPerson($person);
+
+        $this->contactPointRepositoryMock
+            ->method('getByTypeAndPerson')
+            ->with(ContactPointTypeEnum::PRINCIPAL()->getValue(), $access->getPerson())
+            ->willReturn([]);
+
+        $this->assertNull($this->contactPointUtils->getPersonContactPointPrincipal($access));
+    }
+}