/**
  * Get the Entity Manager, creating it if necessary
  *
  * @return \Doctrine\ORM\EntityManager
  */
 public function getEntityManager()
 {
     if (is_null($this->entityManager)) {
         $this->entityManager = EntityManagerFactory::createEntityManager();
     }
     return $this->entityManager;
 }
예제 #2
0
 public function test_it_processes_the_filters()
 {
     $entityManager = EntityManagerFactory::createEntityManager();
     $qb = $entityManager->createQueryBuilder();
     $qb->select('e')->from('App\\Entities\\Entity', 'e');
     $filters = new Filters(['id' => '123', 'name' => 'Eduardo', 'size' => '10x10', 'dates' => '01/01/2016-02/02/2020']);
     $result = $this->filterManager->process($qb, $filters)->getQuery();
     $expectedDQL = "SELECT e FROM App\\Entities\\Entity e WHERE e.id = ?1 AND e.name LIKE ?2 AND CONCAT(e.width, 'x', e.height) LIKE ?3 AND (e.runDate BETWEEN ?4 AND ?5)";
     $this->assertEquals($expectedDQL, $result->getDql());
     $paramArray = $result->getParameters()->map(function ($parameter) {
         $value = $parameter->getValue();
         return $value instanceof \DateTime ? $value->format('Y-m-d H:i:s') : $value;
     })->toArray();
     $expectedParmArray = ['123', '%Eduardo%', '%10x10%', '2016-01-01 00:00:00', '2020-02-02 23:59:59'];
     $this->assertEquals($expectedParmArray, $paramArray);
 }