UnanimousStrategy example

use Symfony\Component\Lock\Strategy\UnanimousStrategy;

/** * @author Jérémy Derussé <jeremy@derusse.com> */
class UnanimousStrategyTest extends TestCase
{
    private UnanimousStrategy $strategy;

    protected function setUp(): void
    {
        $this->strategy = new UnanimousStrategy();
    }

    public static function provideMetResults()
    {
        // success, failure, total, isMet         yield [3, 0, 3, true];
        yield [2, 1, 3, false];
        yield [2, 0, 3, false];
        yield [1, 2, 3, false];
        yield [1, 1, 3, false];
        yield [1, 0, 3, false];
        
public function getStore(): PersistingStoreInterface
    {
        $redis = new \Predis\Client(array_combine(['host', 'port']explode(':', getenv('REDIS_HOST')) + [1 => 6379]));

        try {
            $redis->connect();
        } catch (\Exception $e) {
            self::markTestSkipped($e->getMessage());
        }

        return new CombinedStore([new RedisStore($redis)]new UnanimousStrategy());
    }

    private MockObject&StrategyInterface $strategy;
    private MockObject&BlockingStoreInterface $store1;
    private MockObject&BlockingStoreInterface $store2;
    private CombinedStore $store;

    protected function setUp(): void
    {
        $this->strategy = $this->createMock(StrategyInterface::class);
        $this->store1 = $this->createMock(BlockingStoreInterface::class);
        


namespace Authorization\Strategy;

use Symfony\Component\Security\Core\Authorization\Strategy\UnanimousStrategy;
use Symfony\Component\Security\Core\Test\AccessDecisionStrategyTestCase;

class UnanimousStrategyTest extends AccessDecisionStrategyTestCase
{
    public static function provideStrategyTests(): iterable
    {
        $strategy = new UnanimousStrategy();

        yield [$strategy, self::getVoters(1, 0, 0), true];
        yield [$strategy, self::getVoters(1, 0, 1), true];
        yield [$strategy, self::getVoters(1, 1, 0), false];

        yield [$strategy, self::getVoters(0, 0, 2), false];

        $strategy = new UnanimousStrategy(true);

        yield [$strategy, self::getVoters(0, 0, 2), true];
    }
}
Home | Imprint | This part of the site doesn't use cookies.