/**
  * @covers Alchemy\Phrasea\Authentication\Authenticator::isAuthenticated
  */
 public function testIsAuthenticated()
 {
     $app = $this->loadApp();
     $sessionEntity = new Session();
     $sessionEntity->setUser(self::$DI['user']);
     $sessionEntity->setUserAgent('');
     $app['browser'] = $browser = $this->getBrowserMock();
     $app['session'] = $session = $this->getSessionMock();
     $app['EM'] = $em = $this->getEntityManagerMock();
     $app['EM']->expects($this->any())->method('find')->with($this->equalTo('Phraseanet:Session'), $this->equalTo(1))->will($this->returnValue($sessionEntity));
     $userRepository = $this->getMockBuilder('Alchemy\\Phrasea\\Model\\Repositories\\UserRepository')->disableOriginalConstructor()->getMock();
     $userRepository->expects($this->once())->method('find')->with($this->equalTo(self::$DI['user']->getId()))->will($this->returnValue(self::$DI['user']));
     $app['manipulator.user'] = $this->getMockBuilder('Alchemy\\Phrasea\\Model\\Manipulator\\UserManipulator')->disableOriginalConstructor()->getMock();
     $app['manipulator.user']->expects($this->once())->method('getRepository')->will($this->returnValue($userRepository));
     $session->set('usr_id', self::$DI['user']->getId());
     $session->set('session_id', 1);
     $authenticator = new Authenticator($app, $browser, $session, $app['EM']);
     $this->assertTrue($authenticator->isAuthenticated());
     $this->assertEquals(self::$DI['user'], $authenticator->getUser());
 }
 /**
  * Authenticates self::['user'] against application.
  *
  * @param Application $app
  * @param User        $user
  */
 protected function authenticate(Application $app, User $user = null)
 {
     /** @var User $user */
     $user = $user ?: self::$DI['user'];
     $app['session']->clear();
     $app['session']->set('usr_id', $user->getId());
     $session = new Session();
     $session->setUser($user);
     $session->setUserAgent('');
     $app['orm.em']->persist($session);
     $app['orm.em']->flush();
     $app['session']->set('session_id', $session->getId());
     $app->getAuthenticator()->reinitUser();
 }
 /**
  * Authenticates self::['user'] against application.
  *
  * @param Application $app
  * @param User        $user
  */
 protected function authenticate(Application $app, $user = null)
 {
     $user = $user ?: self::$DI['user'];
     $app['session']->clear();
     $app['session']->set('usr_id', self::$DI['user']->getId());
     $session = new Session();
     $session->setUser(self::$DI['user']);
     $session->setUserAgent('');
     self::$DI['app']['EM']->persist($session);
     self::$DI['app']['EM']->flush();
     $app['session']->set('session_id', $session->getId());
     self::$DI['app']['authentication']->reinitUser();
 }
 /**
  * {@inheritDoc}
  */
 public function setUserAgent($userAgent)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'setUserAgent', array($userAgent));
     return parent::setUserAgent($userAgent);
 }