/** * {@inheritdoc} */ public function handle(MassActionHandlerArgs $args) { $massAction = $args->getMassAction(); $entityName = $this->actionRepository->getEntityName($args->getDatagrid()); if (!$this->isMassActionEnabled($entityName)) { return $this->getResponse($massAction, 0, 'Action not configured or not allowed'); } $massAction->getOptions()->offsetSet('entityName', $entityName); $entitiesCount = $this->actionRepository->batchUpdate($massAction, $args->getResults(), $args->getData()); return $this->getResponse($massAction, $entitiesCount); }
public function testGetEntityName() { /** @var DatagridInterface|\PHPUnit_Framework_MockObject_MockObject $datagridMock */ $datagridMock = $this->getMockBuilder('Oro\\Bundle\\DataGridBundle\\Datagrid\\DatagridInterface')->disableOriginalConstructor()->getMock(); $datagridMock->expects($this->once())->method('getDatasource')->will($this->returnValue(null)); $resultEntityName = $this->actionRepo->getEntityName($datagridMock); $this->assertNull($resultEntityName, 'Failed asserting that datasource configured'); // assert datasource configured $datagridMock = $this->getMockBuilder('Oro\\Bundle\\DataGridBundle\\Datagrid\\DatagridInterface')->disableOriginalConstructor()->getMock(); $datasourceMock = $this->getMockBuilder('Oro\\Bundle\\DataGridBundle\\Datasource\\Orm\\OrmDatasource')->disableOriginalConstructor()->getMock(); $datagridMock->expects($this->once())->method('getDatasource')->will($this->returnValue($datasourceMock)); $qbMock = $this->getMockBuilder('Doctrine\\ORM\\QueryBuilder')->disableOriginalConstructor()->getMock(); $datasourceMock->expects($this->once())->method('getQueryBuilder')->willReturn($qbMock); $qbMock->expects($this->once())->method('getRootEntities')->willReturn(['Test\\Entity', 'Test\\AnotherEntity']); $resultEntityName = $this->actionRepo->getEntityName($datagridMock); $this->assertEquals('Test\\Entity', $resultEntityName, 'Failed asserting that entity name was found'); }