protected function setUpCommon()
{
$this->eventTester = new EventTester();
$events = array(Events::preRemove, Events::postRemove, Events::prePersist, Events::postPersist, Events::preUpdate, Events::postUpdate, Events::preLoad, Events::postLoad, Events::preFlush, Events::onFlush, Events::postFlush, Events::onClear);
$this->eventManager = new EventManager();
foreach ($events as $event) {
$this->eventManager->addEventListener($event, $this->eventTester);
}
$this->classMetadataInstantiator = new SkeletonMapper\Mapping\ClassMetadataInstantiator();
$this->classMetadataFactory = new SkeletonMapper\Mapping\ClassMetadataFactory($this->classMetadataInstantiator);
$this->objectFactory = new SkeletonMapper\ObjectFactory();
$this->objectRepositoryFactory = new SkeletonMapper\ObjectRepository\ObjectRepositoryFactory();
$this->objectPersisterFactory = new SkeletonMapper\Persister\ObjectPersisterFactory();
$this->objectIdentityMap = new SkeletonMapper\ObjectIdentityMap($this->objectRepositoryFactory, $this->classMetadataFactory);
// user class metadata
$this->userClassMetadata = $this->classMetadataFactory->getMetadataFor($this->userClassName);
foreach ($events as $event) {
$this->userClassMetadata->addLifecycleCallback($event, $event);
}
$this->classMetadataFactory->setMetadataFor($this->userClassName, $this->userClassMetadata);
$this->objectManager = new SkeletonMapper\ObjectManager($this->objectRepositoryFactory, $this->objectPersisterFactory, $this->objectIdentityMap, $this->classMetadataFactory, $this->eventManager);
$this->basicObjectHydrator = new SkeletonMapper\Hydrator\BasicObjectHydrator($this->objectManager);
$this->unitOfWork = $this->objectManager->getUnitOfWork();
}