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(); } }