39 lines
1.2 KiB
PHP
39 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace Tests\App\Controllers\View;
|
|
|
|
use App\Controllers\View\FamilyAdminController;
|
|
use CodeIgniter\Test\CIUnitTestCase;
|
|
|
|
final class FamilyAdminControllerAccessTest extends CIUnitTestCase
|
|
{
|
|
protected function tearDown(): void
|
|
{
|
|
session()->remove(['role', 'roles']);
|
|
parent::tearDown();
|
|
}
|
|
|
|
public function testTeachersAndAssistantsCannotViewFamilyInvoices(): void
|
|
{
|
|
$controller = new FamilyAdminController();
|
|
$method = new \ReflectionMethod($controller, 'canViewFamilyInvoices');
|
|
|
|
session()->set('role', 'teacher');
|
|
$this->assertFalse($method->invoke($controller));
|
|
|
|
session()->set('role', 'teacher_assistant');
|
|
$this->assertFalse($method->invoke($controller));
|
|
}
|
|
|
|
public function testAdministrativeRolesCanViewFamilyInvoices(): void
|
|
{
|
|
$controller = new FamilyAdminController();
|
|
$method = new \ReflectionMethod($controller, 'canViewFamilyInvoices');
|
|
|
|
foreach (['admin', 'administrator', 'administrative staff', 'principal'] as $role) {
|
|
session()->set('role', $role);
|
|
$this->assertTrue($method->invoke($controller), $role);
|
|
}
|
|
}
|
|
}
|