/** * Exec options with innerType requirements * * @return OptionsResolver */ public function getExecOptionsResolver() { if (null === $this->execOptionsResolver) { if (null !== $this->parent) { $this->execOptionsResolver = clone $this->parent->getExecOptionsResolver(); } else { $this->execOptionsResolver = new OptionsResolver(); } $this->innerType->setExecOptions($this->execOptionsResolver); foreach ($this->typeExtensions as $extension) { $extension->setExecOptions($this->execOptionsResolver); } } return $this->execOptionsResolver; }
public function test_it_should_set_exec_options_from_type_and_parent() { $this->given($resolved = new TestedClass($this->jobType, array(), $this->resolvedParent))->then($resolver = $resolved->getExecOptionsResolver(), $options = $resolver->resolve(array('bb' => 'gogo')))->array($options)->isEqualTo(array('aa' => 'jeanjean', 'bb' => 'gogo', 'cc' => 'dodo')); }