/** * Init options with innerType requirements * * @return OptionsResolver */ public function getInitOptionsResolver() { if (null === $this->initOptionsResolver) { if (null !== $this->parent) { $this->initOptionsResolver = clone $this->parent->getInitOptionsResolver(); } else { $this->initOptionsResolver = new OptionsResolver(); } $this->innerType->setInitOptions($this->initOptionsResolver); foreach ($this->typeExtensions as $extension) { $extension->setInitOptions($this->initOptionsResolver); } } return $this->initOptionsResolver; }
public function test_it_should_set_init_options_from_type_and_parent() { $this->given($resolved = new TestedClass($this->jobType, array(), $this->resolvedParent))->then($resolver = $resolved->getInitOptionsResolver(), $options = $resolver->resolve(array('a' => 'paul', 'c' => 'flex')))->array($options)->isEqualTo(array('a' => 'paul', 'b' => 'marc', 'c' => 'flex', 'd' => 'doe')); }