public function testOnBuildAfterWithAlias()
 {
     $qb = $this->getMockBuilder('Doctrine\\ORM\\QueryBuilder')->disableOriginalConstructor()->getMock();
     $datasource = $this->getMockBuilder('Oro\\Bundle\\DataGridBundle\\Datasource\\Orm\\OrmDatasource')->disableOriginalConstructor()->getMock();
     $datasource->expects($this->once())->method('getQueryBuilder')->will($this->returnValue($qb));
     $this->datagrid->expects($this->once())->method('getDatasource')->will($this->returnValue($datasource));
     $this->securityProvider->expects($this->once())->method('applyAcl')->with($qb, 'tt');
     $tagId = 100;
     $this->parameters->expects($this->at(0))->method('get')->with('tag_id', 0)->will($this->returnValue($tagId));
     $this->parameters->expects($this->at(1))->method('get')->with('from', '*')->will($this->returnValue('type'));
     $qb->expects($this->at(0))->method('setParameter')->with('tag', $tagId);
     $qb->expects($this->at(1))->method('andWhere')->will($this->returnSelf());
     $qb->expects($this->at(2))->method('setParameter')->with('alias', 'type');
     $this->listener->onBuildAfter($this->event);
 }
 /**
  * @dataProvider testOnBuildAfterDataProvider
  *
  * @param string                       $alias
  * @param string|null                  $entityClass
  * @param EntityAliasNotFoundException $exception
  */
 public function testOnBuildAfter($alias, $entityClass = null, EntityAliasNotFoundException $exception = null)
 {
     $this->event->expects($this->once())->method('getDatagrid')->will($this->returnValue($this->datagrid));
     $qb = $this->assertOrmDataSource();
     $this->assertAclCall($qb);
     $tagId = 100;
     $this->parameters->expects($this->at(0))->method('get')->with('tag_id', 0)->will($this->returnValue($tagId));
     $qb->expects($this->at(0))->method('setParameter')->with('tag', $tagId);
     $this->parameters->expects($this->at(1))->method('get')->with('from', '')->will($this->returnValue($alias));
     if (strlen($alias) > 0) {
         $earMockBuilder = $this->entityAliasResolver->expects($this->once())->method('getClassByAlias')->with($alias);
         if (null !== $entityClass) {
             $earMockBuilder->willReturn($entityClass);
             $qb->expects($this->at(1))->method('andWhere')->with('tt.entityName = :entityClass')->willReturn($qb);
             $qb->expects($this->at(2))->method('setParameter')->with('entityClass', $entityClass);
         } else {
             $earMockBuilder->willThrowException($exception);
             $qb->expects($this->at(1))->method('1 = 0');
         }
     }
     $this->listener->onBuildAfter($this->event);
 }