/**
  * @depends testCanCreateService
  * @return void
  */
 public function testCreateServiceWithOptionalManagers()
 {
     $serviceLocator = $this->serviceManager;
     //Test with optional managers
     $hydrator = new ObjectProperty();
     $hydratorManager = new HydratorPluginManager();
     $hydratorManager->setService('Zend\\Stdlib\\Hydrator\\ObjectProperty', $hydrator);
     $serviceLocator->setService('HydratorManager', $hydratorManager);
     $inputFilter = new InputFilter();
     $inputFilterManager = new InputFilterPluginManager();
     $inputFilterManager->setService('Zend\\InputFilter\\InputFilter', $inputFilter);
     $serviceLocator->setService('InputFilterManager', $inputFilterManager);
     $objectFull = $serviceLocator->get('MyObject\\Full');
     $this->assertSame($hydrator, $objectFull->getHydrator());
     $this->assertSame($inputFilter, $objectFull->getInputFilter());
 }
 public function testRegisteringInvalidElementRaisesException()
 {
     $this->setExpectedException('Zend\\InputFilter\\Exception\\RuntimeException');
     $this->manager->setService('test', $this);
 }
 /**
  * @depends testCanCreateService
  * @return void
  */
 public function testCreateServiceWithOptionalManagers()
 {
     $serviceLocator = $this->serviceManager;
     //Test with optional managers
     $hydrator = new ObjectProperty();
     $hydratorManager = new HydratorPluginManager();
     $hydratorManager->setService('Zend\\Stdlib\\Hydrator\\ObjectProperty', $hydrator);
     $serviceLocator->setService('HydratorManager', $hydratorManager);
     $inputFilter = new InputFilter();
     $inputFilterManager = new InputFilterPluginManager();
     $inputFilterManager->setService('Zend\\InputFilter\\InputFilter', $inputFilter);
     $serviceLocator->setService('InputFilterManager', $inputFilterManager);
     $domainObject = new DomainObject();
     $objectManager = new ObjectManager();
     $objectManager->setService('DomainObject', $domainObject);
     $serviceLocator->setService('Matryoshka\\Model\\Object\\ObjectManager', $objectManager);
     $modelFull = $serviceLocator->get('MyModel\\Full');
     $this->assertSame($hydrator, $modelFull->getHydrator());
     $this->assertSame($inputFilter, $modelFull->getInputFilter());
     $this->assertSame($domainObject, $modelFull->getObjectPrototype());
     $listenerAggregate = $this->getMockForAbstractClass('Zend\\EventManager\\ListenerAggregateInterface', ['attach']);
     $listenerAggregate = $serviceLocator->get('ListenerAggregateMockedAsset');
     $listenerAggregate->expects($this->atLeastOnce())->method('attach')->with($this->isInstanceOf('Zend\\EventManager\\EventManagerInterface'));
     $listenerManager = new ListenerManager();
     $listenerManager->setService('ListenerAggregateMockedAsset', $listenerAggregate);
     $serviceLocator->setService('Matryoshka\\Model\\Listener\\ListenerManager', $listenerManager);
     /* @var $myModelOL \Matryoshka\Model\ObservableModel */
     $myModelOL = $serviceLocator->get('MyModel\\OL');
 }