public function it_outputs_too_many_attempts_error(AcceptanceTester $I)
 {
     $username = '******';
     $password = '******';
     for ($i = 0; $i < LoginPage::$maxLoginAttempts; $i++) {
         $this->userActor->makeLoginAttempt($I, $username, $password);
         $I->see('Login failed. Please try again.');
     }
     $this->userActor->makeLoginAttempt($I, $username, $password);
     $I->see('Too many login attempts. Please try again in');
 }
 public function it_clears_attempts_on_successful_login(FunctionalTester $I)
 {
     $user = $this->userActor->create();
     $username = $user->username;
     $keyAttempts = 'login:attempts:' . md5($username . '127.0.0.1');
     $keyLockout = 'login:expiration:' . md5($username . '127.0.0.1');
     $I->assertFalse(Cache::has($keyAttempts));
     //check for records
     $I->assertFalse(Cache::has($keyLockout));
     $this->userActor->makeLoginAttempt($I, $username, 'a');
     //fail to login
     $I->assertTrue(Cache::has($keyAttempts));
     //record should exist
     $this->userActor->makeLoginAttempt($I, $username, \Actors\UserActor::$_defaultPassword);
     //success login
     $I->see('Logout');
     $I->assertFalse(Cache::has($keyAttempts));
     //records should be deleted
     $I->assertFalse(Cache::has($keyLockout));
 }