/**
  * {@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');
 }