using Moq; using VeraxShield.modele.utilisateurs; using VeraxShield.services.UtilisateursDataService; namespace TestVeraxShield; public class IAuthentificationServiceTests { private readonly Mock _mockDataService; private readonly AuthentificationService _authService; public IAuthentificationServiceTests() { _mockDataService = new Mock(); _authService = new AuthentificationService(_mockDataService.Object); } [Fact] public async Task GetUtilisateur_ValidUser_ReturnsUser() { // Arrange var expectedUser = new UtilisateurCourant { Pseudo = "user1", EstAuthentifie = true }; _mockDataService.Setup(x => x.getAllUtilisateurs()).ReturnsAsync(new List { new Utilisateur("user1", "Name", "Surname", "user1@example.com", "password", "User", false) }); // Act var result = await _authService.GetUtilisateur("user1"); // Assert Assert.Equal(expectedUser.Pseudo, result.Pseudo); Assert.True(result.EstAuthentifie); } [Fact] public async Task GetUtilisateur_NonExistentUser_ThrowsException() { // Arrange _mockDataService.Setup(x => x.getAllUtilisateurs()).ReturnsAsync(new List()); // Act & Assert await Assert.ThrowsAsync(() => _authService.GetUtilisateur("user2")); } }