function it_removes(SqlManager $pdo, \PDOStatement $statement, User $user, UserId $userId)
 {
     $user->id()->shouldBeCalled()->willReturn($userId);
     $userId->id()->shouldBeCalled()->willReturn('theid');
     $pdo->execute(sprintf('DELETE FROM %s WHERE id = :id', SqlUserRepository::TABLE_NAME), ['id' => 'theid'])->shouldBeCalled()->willReturn($statement);
     $this->remove($user);
 }
 function it_updates(SqlManager $pdo, \PDOStatement $statement, User $user, UserId $userId, UserEmail $email)
 {
     $user->id()->shouldBeCalled()->willReturn($userId);
     $userId->id()->shouldBeCalled()->willReturn('theid');
     $user->email()->shouldBeCalled()->willReturn($email);
     $email->getValue()->shouldBeCalled()->willReturn('*****@*****.**');
     $user->password()->shouldBeCalled()->willReturn('password');
     $pdo->execute(sprintf('SELECT COUNT(*) FROM %s WHERE id = :id', SqlUserRepository::TABLE_NAME), [':id' => 'theid'])->shouldBeCalled()->willReturn($statement);
     $statement->fetchColumn()->shouldBeCalled()->willReturn(1);
     $pdo->execute(sprintf('UPDATE %s SET email = :email, password = :password WHERE id = :id', SqlUserRepository::TABLE_NAME), ['id' => 'theid', 'email' => '*****@*****.**', 'password' => 'password'])->shouldBeCalled()->willReturn($statement);
     $this->save($user);
 }
 /**
  * {@inheritdoc}
  */
 public function remove(User $anUser)
 {
     $this->pdo->execute(sprintf('DELETE FROM %s WHERE id = :id', self::TABLE_NAME), ['id' => $anUser->id()->id()]);
 }
 /**
  * Updates the user given into database.
  *
  * @param \Domain\Model\User\User $anUser The user
  */
 private function update(User $anUser)
 {
     $this->pdo->execute(sprintf('UPDATE %s SET email = :email, password = :password WHERE id = :id', self::TABLE_NAME), ['id' => $anUser->id()->id(), 'email' => $anUser->email()->getValue(), 'password' => $anUser->password()]);
 }