| Current Path : /var/www/v3.cesa.co.za/tests/Unit/UserBundle/ |
| Current File : /var/www/v3.cesa.co.za/tests/Unit/UserBundle/MemberPortalUserServiceTest.php |
<?php
namespace App\Tests\Unit\UserBundle;
use App\MemberBundle\Entity\MemberContact;
use App\MemberBundle\Entity\MemberFirm;
use App\MemberBundle\Entity\MemberOffice;
use App\MemberBundle\Repository\MemberContactRepository;
use App\UserBundle\Entity\UserLogin;
use App\UserBundle\Service\MemberPortalUserService;
use PHPUnit\Framework\TestCase;
class MemberPortalUserServiceTest extends TestCase
{
public function testResolveRolesWithoutMemberFirm(): void
{
$repository = $this->createMock(MemberContactRepository::class);
$repository->method('findByContactIdWithMemberFirm')->willReturn(null);
$service = new MemberPortalUserService($repository);
$user = (new UserLogin())->setUsername('member')->setContactId(1);
$context = $service->buildLoginContext($user);
$this->assertFalse($context->hasMemberFirm());
$this->assertSame(['NONE'], $service->resolveRoles($user, $context));
}
public function testResolveRolesWithMemberFirm(): void
{
$firm = $this->createMock(MemberFirm::class);
$firm->method('getId')->willReturn(42);
$office = $this->createMock(MemberOffice::class);
$office->method('getMemberFirm')->willReturn($firm);
$contact = $this->createMock(MemberContact::class);
$contact->method('getMemberOffice')->willReturn($office);
$repository = $this->createMock(MemberContactRepository::class);
$repository->method('findByContactIdWithMemberFirm')->willReturn($contact);
$service = new MemberPortalUserService($repository);
$user = (new UserLogin())->setUsername('member')->setContactId(99);
$context = $service->buildLoginContext($user);
$service->applyLoginContext($user, $context);
$this->assertTrue($context->hasMemberFirm());
$this->assertSame(42, $context->getMemberFirmId());
$this->assertContains('ROLE_MEMBER_FIRM', $user->getRoles());
$this->assertTrue($user->hasMemberFirm());
$this->assertSame(42, $user->getMemberFirmId());
}
}