/** * @dataProvider dataProviderIsAllow */ public function testIsAllow(array $states, $defaultState, $stateCollection, array $authorizedStates) { $graph = new Graph(); foreach ($states as $i => $state) { $spec = "spec" . $i; ${$spec} = new \mock\Rezzza\Workflow\Specification\SpecificationInterface(); ${$spec}->getMockController()->isSatisfiedBy = (bool) $state; $graph->addState(sprintf('state%s', $i + 1), new TestedClass($stateCollection, ${$spec})); } $data = new \stdClass(); $data->state = $defaultState; $workflow = new Workflow($graph, $data, 'state'); $this->array($workflow->getAuthorizedStates())->isIdenticalTo($authorizedStates); }