public function setUp()
 {
     $this->onBeforeSetup();
     $repositoryFactory = new RepositoryFactory($this->config, $this->connection, $this->transactor);
     $this->entityRegistry = $repositoryFactory->getEntityRegistry();
     $this->builder = $repositoryFactory->getEntityBuilder();
     $this->unitOfWork = $repositoryFactory->getUnitOfWork();
     $this->idAccessorRegistry = $repositoryFactory->getIdAccessorRegistry();
     $this->onAfterSetUp();
 }
 /**
  * @param $entityClass
  * @param $key
  */
 private function setIdAccessors($entityClass, $key)
 {
     $idAccessorRegistry = $this->repositoryFactory->getIdAccessorRegistry();
     if (is_array($key)) {
         $getter = function ($entity) use($key) {
             $id = [];
             foreach ($key as $property) {
                 $id[$property] = $entity->{$property};
             }
             return $id;
         };
         $setter = function ($entity, $id) use($key) {
             foreach ($key as $property) {
                 $entity->{$property} = $id[$property];
             }
         };
         $idAccessorRegistry->registerIdAccessors($entityClass, $getter, $setter);
         return;
     }
     if (!empty($key)) {
         $idAccessorRegistry->registerReflectionIdAccessors($entityClass, $key);
     }
 }