public function testGetEmailOrigins()
 {
     $userId = 123;
     $emailOrigins = [new InternalEmailOrigin()];
     $this->setGetEmailOriginsExpectations($userId, $emailOrigins);
     $this->assertSame($emailOrigins, $this->helper->getEmailOrigins($userId));
     // call one more time to check the result is cached
     $this->assertSame($emailOrigins, $this->helper->getEmailOrigins($userId));
 }
 /**
  * @param BuildAfter $event
  */
 public function onBuildAfter(BuildAfter $event)
 {
     $datagrid = $event->getDatagrid();
     $datasource = $datagrid->getDatasource();
     if ($datasource instanceof OrmDatasource) {
         $parameters = $datagrid->getParameters();
         $userId = $parameters->get('userId');
         $queryBuilder = $datasource->getQueryBuilder();
         $this->emailQueryFactory->applyAcl($queryBuilder);
         $this->emailQueryFactory->prepareQuery($queryBuilder);
         // bind 'origin_ids' parameter
         $originIds = [];
         $emailOrigins = $this->emailGridHelper->getEmailOrigins($userId);
         foreach ($emailOrigins as $emailOrigin) {
             $originIds[] = $emailOrigin->getId();
         }
         $queryBuilder->setParameter('origin_ids', $originIds);
     }
 }