public function testSetRandomPassword()
{
$app = $this->getApp();
$this->addDefaultUser($app);
$entityName = 'Bolt\\Storage\\Entity\\Users';
/** @var Repository\UsersRepository $repo */
$repo = $app['storage']->getRepository($entityName);
$logger = $this->getMockMonolog();
$logger->expects($this->atLeastOnce())->method('info')->with($this->equalTo("Password for user 'admin' was reset via Nut."));
$app['logger.system'] = $logger;
$password = new Password($app);
$newPass = $password->setRandomPassword('admin');
/** @var Entity\Users $userEntity */
$userEntity = $repo->getUser('admin');
$userAuth = $repo->getUserAuthData($userEntity->getId());
$crypt = new PasswordLib();
$compare = $crypt->verifyPasswordHash($newPass, $userAuth->getPassword());
$this->assertTrue($compare);
$this->assertEmpty($userEntity->getShadowpassword());
$this->assertEmpty($userEntity->getShadowtoken());
$this->assertNull($userEntity->getShadowvalidity());
}