You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.5 KiB
93 lines
3.5 KiB
<?php
|
|
use PHPUnit\Framework\TestCase;
|
|
use Stub\AuthService;
|
|
use Model\Coach;
|
|
use Model\Athlete;
|
|
|
|
use Model\User;
|
|
use Shared\Exception\NotImplementedException;
|
|
use Network\IAuthService;
|
|
use Shared\HashPassword;
|
|
use Stub\UserRepository;
|
|
|
|
class AuthServiceTest extends TestCase{
|
|
public function testLoginWithValidCredentials() {
|
|
// Arrange
|
|
$userRepository = new UserRepository();
|
|
$passwordHasher = new HashPassword();
|
|
$authService = new AuthService($userRepository, $passwordHasher);
|
|
|
|
// Create a user for testing
|
|
$user = new User(6, "Truc", "Test", "truc.test@example.com", "test123", "M", 1.75, 80, new \DateTime("2000-01-01"), new Athlete);
|
|
$userRepository->addItem($user);
|
|
|
|
// Act
|
|
$result = $authService->login($user->getNom(), "test123");
|
|
|
|
// Assert
|
|
$this->assertInstanceOf(User::class, $result);
|
|
// Add more assertions if needed
|
|
}
|
|
public function testLoginWithInvalidUsername() {
|
|
// Arrange
|
|
$userRepository = new UserRepository();
|
|
$passwordHasher = new HashPassword();
|
|
$authService = new AuthService($userRepository, $passwordHasher);
|
|
|
|
// Act and Assert
|
|
$this->expectException(\Exception::class);
|
|
$authService->login("Machin", "password123");
|
|
}
|
|
public function testLoginWithInvalidPassword() {
|
|
// Arrange
|
|
$userRepository = new UserRepository();
|
|
$passwordHasher = new HashPassword();
|
|
$authService = new AuthService($userRepository, $passwordHasher);
|
|
|
|
// Create a user for testing
|
|
$user = new User(6, "Truc", "Test", "truc.test@example.com", "test123", "M", 1.75, 80, new \DateTime("2000-01-01"), new Athlete);
|
|
$userRepository->addItem($user);
|
|
|
|
// Act and Assert
|
|
$this->assertNull($authService->login($user->getNom(), "machin"));
|
|
}
|
|
public function testRegisterNewUser() {
|
|
// Arrange
|
|
$userRepository = new UserRepository();
|
|
$passwordHasher = new HashPassword();
|
|
$authService = new AuthService($userRepository, $passwordHasher);
|
|
|
|
// Act
|
|
$result = $authService->register("truc.test@example.com", "test123", array("prenom"=>"Truc", "nom"=>"Test", "email"=>"truc.test@example.com", "sexe"=>"M","poids"=>1.75, "taille"=>80,"dateNaissance"=>new \DateTime("2000-01-01"), "roleName"=>"Athlete"));
|
|
|
|
// Assert
|
|
$this->assertTrue($result);
|
|
// Add more assertions if needed
|
|
}
|
|
/*
|
|
public function testRegisterWithExistingUser() {
|
|
// Arrange
|
|
$userRepository = new UserRepository();
|
|
$passwordHasher = new HashPassword();
|
|
$authService = new AuthService($userRepository, $passwordHasher);
|
|
|
|
// Create an existing user for testing
|
|
$existingUser = new User(6, "Truc", "Test", "truc.test@example.com", "test123", "M", 1.75, 80, new \DateTime("2000-01-01"), new Athlete);
|
|
$userRepository->addItem($existingUser);
|
|
|
|
// Act and Assert
|
|
$this->expectException(\Exception::class);
|
|
$authService->register($existingUser->getNom(), "test123", array("prenom"=>"Truc", "nom"=>"Test", "email"=>"truc.test@example.com", "sexe"=>"M","poids"=>1.75, "taille"=>80,"dateNaissance"=>new \DateTime("2000-01-01"), "roleName"=>"Athlete"));
|
|
}
|
|
*/
|
|
public function testLogoutUserMethodNotImplemented() {
|
|
// Arrange
|
|
$userRepository = new UserRepository();
|
|
$passwordHasher = new HashPassword();
|
|
$authService = new AuthService($userRepository, $passwordHasher);
|
|
|
|
// Act
|
|
$this->expectOutputString('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! logout method not implemented !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
|
|
$authService->logoutUser();
|
|
}
|
|
} |