/**
  * @Route("/send-email-as-admin/{id}", name="oro_user_reset_send_email_as_admin", requirements={"id"="\d+"})
  * @AclAncestor("password_management")
  * @Template("OroUserBundle:Reset/widget:sendEmailConfirmation.html.twig")
  */
 public function sendEmailAsAdminAction(User $user)
 {
     $params = ['entity' => $user];
     if ($this->getRequest()->isMethod('POST')) {
         if (null === $user->getConfirmationToken()) {
             $user->setConfirmationToken($user->generateToken());
         }
         $this->get('session')->set(static::SESSION_EMAIL, $this->getObfuscatedEmail($user));
         try {
             $this->get('oro_user.mailer.processor')->sendResetPasswordAsAdminEmail($user);
         } catch (\Exception $e) {
             $params['processed'] = false;
             $params['error'] = $this->get('translator')->trans('oro.email.handler.unable_to_send_email');
             return $params;
         }
         $user->setPasswordRequestedAt(new \DateTime('now', new \DateTimeZone('UTC')));
         $this->get('oro_user.manager')->updateUser($user);
         $params['processed'] = true;
     } else {
         $params['formAction'] = $this->get('router')->generate('oro_user_reset_send_email_as_admin', ['id' => $user->getId()]);
     }
     return $params;
 }
 public function testUnserialize()
 {
     $user = new User();
     $serialized = array('password', 'salt', 'username', true, 'confirmation_token', 10);
     $user->unserialize(serialize($serialized));
     $this->assertEquals($serialized[0], $user->getPassword());
     $this->assertEquals($serialized[1], $user->getSalt());
     $this->assertEquals($serialized[2], $user->getUsername());
     $this->assertEquals($serialized[3], $user->isEnabled());
     $this->assertEquals($serialized[4], $user->getConfirmationToken());
     $this->assertEquals($serialized[5], $user->getId());
 }