コード例 #1
0
 /**
  * Возвращает рандомную сущность из всех возможных
  *
  * @param EntityManager $em менеджер сущностей
  * @param string $entityFullClassName наименование сущности, которое поймет менеджер
  *
  * @throws \Doctrine\ORM\ORMException выкидывается, если не была найдена ни одна сущность
  * @return object сущность полученная из БД
  */
 public static function getOneRandomEntity(EntityManager $em, $entityFullClassName)
 {
     $primaryKeyData = EntityHelper::getOneRandomEntityId($em, $entityFullClassName);
     // Сделал исключение, т.к. вызывая этот метод клиент должен быть уверен в том, что вернется какая-то сущность
     if ($primaryKeyData === null) {
         throw new ORMException("Случайная сущность {$entityFullClassName} не была найдена, скорее всего таблица пустая");
     }
     if (is_array($primaryKeyData)) {
         $entity = $em->getRepository($entityFullClassName)->findOneBy($primaryKeyData);
     } else {
         $entity = $em->getRepository($entityFullClassName)->find($primaryKeyData);
     }
     return $entity;
 }
コード例 #2
0
 public function testGetOneRandomEntityIdReturnNullIfNoDataInDB()
 {
     $this->assertNull(EntityHelper::getOneRandomEntityId($this->em, $this->authorFullClassName));
 }
コード例 #3
0
 public function testPatch()
 {
     if ($this->entityForPatch === null) {
         throw new \Exception("Необходимо задать entityForPatch");
     }
     $setUpDataToChange = function ($object) {
         $object = (object) array_merge((array) $object, (array) $this->convertEntityToObj($this->entityForPatch, [Action::GROUP_PATCH]));
         return $object;
     };
     $assertResponseData = function ($responseData) {
         $this->assertResponseData($responseData);
         $this->em->clear();
         $entity = $this->em->getRepository(self::$shortEntityName)->find($responseData->data->{$this->getEntityPKFieldName()});
         $this->assertNotNull($entity);
         $this->assertTwoObjects($this->convertEntityToObj($entity, [Action::GROUP_PATCH]), $responseData->data);
     };
     $entityId = EntityHelper::getOneRandomEntityId(static::getEntityManager(), self::$shortEntityName);
     $action = (new PatchAction())->setEntityPKValue($entityId)->setDataAltererCallback($setUpDataToChange)->addResponseDataAsserterCallback($assertResponseData);
     $this->initAction($action);
     $action->run();
 }