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); }