Invis1ble/assistant

View on GitHub
tests/AppBundle/Security/Authorization/Voter/PeriodVoterTest.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
 
namespace Tests\AppBundle\Security\Authorization\Voter;
 
use AppBundle\Security\Authorization\Voter\PeriodVoter;
use AppBundle\Entity\{
Period,
User
};
 
/**
* PeriodVoterTest
*
* @author Max Invis1ble
* @copyright (c) 2016, Max Invis1ble
* @license http://www.opensource.org/licenses/mit-license.php MIT
*
* @group unit
*/
class PeriodVoterTest extends AbstractVoterTestCase
{
use CreateUserTaskTrait;
 
/**
* @return array[]
*/
public function voteProvider(): array
{
$alice = new User();
$alice->setUsername('alice');
 
$bob = new User();
$bob->setUsername('bob');
 
$alicePeriod = $this->createUserPeriod($alice);
$bobPeriod = $this->createUserPeriod($bob);
 
$aliceToken = $this->createJWTToken($alice);
$anonymousToken = $this->createAnonymousToken();
 
return [
[$aliceToken, $alicePeriod, PeriodVoter::SHOW, PeriodVoter::ACCESS_GRANTED],
[$aliceToken, $bobPeriod, PeriodVoter::SHOW, PeriodVoter::ACCESS_DENIED],
[$anonymousToken, $alicePeriod, PeriodVoter::SHOW, PeriodVoter::ACCESS_DENIED],
Missing class import via use statement (line '45', column '31').
[$aliceToken, new \stdClass(), PeriodVoter::SHOW, PeriodVoter::ACCESS_ABSTAIN],
 
[$aliceToken, $alicePeriod, PeriodVoter::EDIT, PeriodVoter::ACCESS_GRANTED],
[$aliceToken, $bobPeriod, PeriodVoter::EDIT, PeriodVoter::ACCESS_DENIED],
[$anonymousToken, $bobPeriod, PeriodVoter::EDIT, PeriodVoter::ACCESS_DENIED],
Missing class import via use statement (line '50', column '31').
[$aliceToken, new \stdClass(), PeriodVoter::EDIT, PeriodVoter::ACCESS_ABSTAIN],
 
[$aliceToken, $alicePeriod, 'not_supported_attribute', PeriodVoter::ACCESS_ABSTAIN],
];
}
 
/**
* @param User $user
*
* @return Period
*/
protected function createUserPeriod(User $user): Period
{
$userTask = $this->createUserTask($user);
$userPeriod = new Period();
$userPeriod->setTask($userTask);
 
return $userPeriod;
}
 
protected function populateVariables()
{
$this->voter = static::$kernel->getContainer()
->get('app.security.authorization.voter.period_voter');
}
}