izzum\statemachine\TransitionTest::shouldNotBeAllowedToTransitionByCallable PHP Method

shouldNotBeAllowedToTransitionByCallable() public method

    public function shouldNotBeAllowedToTransitionByCallable()
    {
        $context = new Context(new Identifier('123', 'foo-machine'));
        $event = 'foo';
        $a = new State('a');
        $b = new State('b');
        $guard_callable = function ($entity) {
            return false;
        };
        //scenario 1. inject in constructor
        $t = new Transition($a, $b, $event, null, null, $guard_callable);
        $this->assertFalse($t->can($context));
        $t->setGuardCallable(Transition::CALLABLE_NULL);
        $this->assertTrue($t->can($context));
        //scenario 2. do not inject in constructor
        $t = new Transition($a, $b, $event);
        $this->assertTrue($t->can($context));
        $t->setGuardCallable($guard_callable);
        $this->assertFalse($t->can($context));
        //scenario 3. callable does not return a boolean
        $guard_callable = function ($entity) {
        };
        $t = new Transition($a, $b, $event, null, null, $guard_callable);
        $this->assertFalse($t->can($context));
    }