/**
  * @param string $username
  * @return User|UserInterface
  * @throws \Symfony\Component\Security\Core\Exception\UsernameNotFoundException
  */
 public function loadUserByUsername($username)
 {
     $user = $this->repo->findOneBy(array('username' => $username));
     if (!$user instanceof $this->userEntityClass) {
         throw new UsernameNotFoundException(sprintf('Username "%s" does not exist.', $username));
     }
     return $this->dehydrate($user);
 }
 public function testRefreshUser()
 {
     $returnedUser = new User('johndoe', '1234', 'spdo8fgspd9f8gs', array('ROLE_USER', 'ROLE_ADMIN'));
     $this->repo->expects($this->any())->method('findOneBy')->with(array('username' => 'johndoe'))->will($this->returnValue($returnedUser));
     $loadedUser = $this->userProvider->loadUserByUsername('johndoe');
     $this->assertEquals(array('ROLE_USER', 'ROLE_ADMIN'), $loadedUser->getRoles());
     $returnedUser->setRoles(array('NO_ROLE'));
     $refreshedUser = $this->userProvider->refreshUser($loadedUser);
     $this->assertEquals(array('NO_ROLE'), $refreshedUser->getRoles());
 }