public function register(ServiceContainerInterface $serviceContainer)
 {
     $serviceContainer['doctrine_dbal.connection_configuration'] = array('driver' => 'pdo_sqlite', 'memory' => true);
     $serviceContainer['doctrine_dbal.event_manager'] = $serviceContainer->share(function () {
         return new EventManager();
     });
     $serviceContainer['doctrine_dbal.connection'] = $serviceContainer->share(function (ServiceContainerInterface $serviceContainer) {
         return DriverManager::getConnection($serviceContainer['doctrine_dbal.connection_configuration'], null, $serviceContainer['doctrine_dbal.event_manager']);
     });
     $serviceContainer['doctrine_dbal.schema'] = $this->schema;
 }
 /**
  * When overriding this method, make sure you call parent::tearDown()
  */
 protected function tearDown()
 {
     $this->container->tearDown();
     $this->container = null;
 }
 public function register(ServiceContainerInterface $container)
 {
     $container['doctrine_orm_value_object.annotation_reader'] = $container->share(function () {
         return new AnnotationReader();
     });
     $container['doctrine_orm_value_object.annotation_driver'] = $container->share(function (ServiceContainerInterface $container) {
         return new MetadataAnnotationDriver($container['doctrine_orm_value_object.annotation_reader']);
     });
     $container['doctrine_orm_value_object.metadata_factory'] = $container->share(function (ServiceContainerInterface $container) {
         return new MetadataFactory($container['doctrine_orm_value_object.annotation_driver']);
     });
     $container['doctrine_orm_value_object.load_value_objects_listener'] = $container->share(function (ServiceContainerInterface $container) {
         return new LoadValueObjectsEventListener($container['doctrine_orm_value_object.entity_to_value_object_synchronizer']);
     });
     $container['doctrine_orm_value_object.entity_to_value_object_synchronizer'] = $container->share(function (ServiceContainerInterface $container) {
         return new EntityToValueObjectSynchronizer($container['doctrine_orm_value_object.metadata_factory']);
     });
     $container['doctrine_orm_value_object.value_object_to_entity_synchronizer'] = $container->share(function (ServiceContainerInterface $container) {
         return new ValueObjectToEntitySynchronizer($container['doctrine_orm_value_object.metadata_factory']);
     });
     $container['doctrine_orm_value_object.store_value_objects_listener'] = $container->share(function (ServiceContainerInterface $container) {
         return new StoreValueObjectsEventListener($container['doctrine_orm_value_object.value_object_to_entity_synchronizer']);
     });
     $container['doctrine_orm_value_object.mapping_driver'] = $container->share(function (ServiceContainerInterface $container) {
         return new MappingAnnotationDriver($container['doctrine_orm_value_object.annotation_reader']);
     });
     $container['doctrine_orm_value_object.add_value_object_mapping_listener'] = $container->share(function (ServiceContainerInterface $container) {
         return new AddValueObjectMappingEventSubscriber($container['doctrine_orm_value_object.metadata_factory'], $container['doctrine_orm_value_object.annotation_reader'], $container['doctrine_orm_value_object.mapping_driver']);
     });
     $container['doctrine_dbal.event_manager'] = $container->extend('doctrine_dbal.event_manager', function (EventManager $eventManager, ServiceContainerInterface $container) {
         $eventManager->addEventSubscriber($container['doctrine_orm_value_object.load_value_objects_listener']);
         $eventManager->addEventSubscriber($container['doctrine_orm_value_object.store_value_objects_listener']);
         $eventManager->addEventSubscriber($container['doctrine_orm_value_object.add_value_object_mapping_listener']);
         return $eventManager;
     });
 }