public function postChangedPassword(PasswordBroker $passwordBroker)
 {
     $validationResult = $this->validate(ResetPasswordByCodePostRequest::class);
     if (!$validationResult->isValid('password') || !$validationResult->isValid('password_confirmation')) {
         return view('reset_password.new_password', ['validationResult' => $validationResult, 'data' => $this->getValidatedData()]);
     }
     if ($validationResult->isValid() && $passwordBroker->reset($this->getValidatedData())) {
         return redirect(route('auth.login'))->with('message.password_changed', trans('reset_password.new_password.message.password_changed'));
     }
     return $this->requestCode()->with('message', trans('reset_password.new_password.message.invalid_link'));
 }
 /** @test */
 public function it_return_same_code_for_second_request()
 {
     $notifier = $this->mock('App\\Contracts\\Notifications\\UserNotifier');
     $notifier->shouldReceive('sendResetPasswordInfo')->twice();
     $userRepoMock = $this->app->make('App\\Repositories\\UserRepository');
     $actionLog = $this->app->make('App\\Contracts\\Log\\ActionsLog');
     $credentials = ['email' => $this->getUserForAuth()->email];
     $passwordBroker = new PasswordBroker($userRepoMock, $notifier, $actionLog);
     $passwordResetToken = $passwordBroker->sendResetInformation($credentials);
     $secondPasswordResetToken = $passwordBroker->sendResetInformation($credentials);
     $this->assertEquals($secondPasswordResetToken->getDecryptedCode(), $passwordResetToken->getDecryptedCode());
     $this->assertEquals($secondPasswordResetToken->id, $passwordResetToken->id);
 }