using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Moq; using WfApi.Controllers; using Shared; using DTO; namespace XUnitTest { public class UnitTest1 { //private readonly Mock> _mockUserService; //private readonly Mock> _mockLogger; //private readonly UsersController _userController; //public UnitTest1() //{ // // Initialisation des mocks // _mockUserService = new Mock>(); // _mockLogger = new Mock>(); // _userController = new UsersController(_mockUserService.Object, _mockLogger.Object); //} //[Fact] //public async Task Get_ReturnsOk_WhenUserExists() //{ // // Arrange // var userId = 1; // var userDTO = new UserDTO // { // Id = userId, // Pseudo = "test", // Email = "test@unitaire.fr", // ImageProfil = "http://test", // Password = "1234" // }; // _mockUserService.Setup(service => service.GetUserById(userId)).ReturnsAsync(userDTO); // // Act // var result = await _userController.Get(userId); // // Assert // Assert.IsType(result); //} //[Fact] //public async Task GetAllUsers_ReturnsOk() //{ // // Arrange // var userDTO = new UserDTO // { // Id = 1, // Pseudo = "test", // Email = "test@unitaire.fr", // ImageProfil = "http://test", // Password = "1234" // }; // var userDTO2 = new UserDTO // { // Id = 2, // Pseudo = "test", // Email = "test@unitaire.fr", // ImageProfil = "http://test", // Password = "1234" // }; // _mockUserService.Setup(service => service.GetUserById(1)).ReturnsAsync(userDTO); // _mockUserService.Setup(service => service.GetUserById(2)).ReturnsAsync(userDTO); // // Act // var result = await _userController.GetAllUsers(); // // Assert // Assert.IsType(result); //} //[Fact] //public async Task GetHashPassword_ReturnsOk_WhenPasswordHashIsFound() //{ // // Arrange // var username = "testUser"; // var expectedHash = "hashedPassword"; // var taskResult = Task.FromResult(expectedHash); // _mockUserService.Setup(service => service.GetHashPassword(username)).Returns(taskResult); // // Act // var result = await _userController.GetHashPassword(username); // // Assert // Assert.IsType(result); //} //[Fact] //public async Task GetUserByUsername_ReturnsOk_WhenPasswordHashIsFound() //{ // // Arrange // var username = "testUser"; // var userDTO = new UserDTO // { // Id = 1, // Pseudo = "testUser", // Email = "test@unitaire.fr", // ImageProfil = "http://test", // Password = "1234" // }; // var taskResult = Task.FromResult(userDTO); // _mockUserService.Setup(service => service.GetUserByUsername(username)).Returns(taskResult); // // Act // var result = await _userController.GetUserByUsername(username); // // Assert // Assert.IsType(result); //} //[Fact] //public async Task GetUserByEmail_ReturnsOk_WhenUserExists() //{ // // Arrange // var email = "test@unitaire.fr"; // var userDTO = new UserDTO // { // Id = 1, // Pseudo = "testUser", // Email = email, // ImageProfil = "http://test", // Password = "1234" // }; // var taskResult = Task.FromResult(userDTO); // _mockUserService.Setup(service => service.GetUserByEmail(email)).Returns(taskResult); // // Act // var result = await _userController.GetUserByEmail(email); // // Assert // Assert.IsType(result); //} //[Fact] //public async Task GetCountUser_ReturnsOk_WhenCountIsSuccessful() //{ // // Arrange // var expectedCount = 5; // var taskResult = Task.FromResult(expectedCount); // _mockUserService.Setup(service => service.CountUser()).Returns(taskResult); // // Act // var result = await _userController.GetCountUser(); // // Assert // Assert.IsType(result); //} //[Fact] //public async Task GetExistUsername_ReturnsOk_WhenUserExists() //{ // // Arrange // var username = "testUser"; // var taskResult = Task.FromResult(true); // _mockUserService.Setup(service => service.ExistUsername(username)).Returns(taskResult); // // Act // var result = await _userController.GetExistUsername(username); // // Assert // Assert.IsType(result); //} //[Fact] //public async Task GetExistEmail_ReturnsOk_WhenEmailExists() //{ // // Arrange // var email = "test@unitaire.fr"; // var taskResult = Task.FromResult(true); // _mockUserService.Setup(service => service.ExistEmail(email)).Returns(taskResult); // // Act // var result = await _userController.GetExistEmail(email); // // Assert // Assert.IsType(result); //} //[Fact] //public async Task UpdateUser_ReturnsOk_WhenUserDataIsValid() //{ // // Arrange // var id = 1; // var updatedUser = new UserDTO // { // Id = id, // Pseudo = "UpdatedUser", // Email = "updated@unitaire.fr", // ImageProfil = "http://updatedImage.com", // Password = "newPassword123" // }; // var taskResult = Task.FromResult(updatedUser); // _mockUserService.Setup(service => service.UpdateUser(id, updatedUser)).Returns(taskResult); // // Act // var result = await _userController.UpdateUser(id, updatedUser); // // Assert // var okResult = Assert.IsType(result); // Assert.IsType(result); //} //[Fact] //public async Task CreateUser_ReturnsCreatedAtAction_WhenUserIsValid() //{ // // Arrange // var newUser = new UserDTO // { // Id = 2, // Pseudo = "NewUser", // Email = "newuser@unitaire.fr", // ImageProfil = "http://newuserimage.com", // Password = "newPassword123" // }; // _mockUserService.Setup(service => service.GetUserById(newUser.Id)).ReturnsAsync((UserDTO)null); // _mockUserService.Setup(service => service.AddUser(newUser)).Verifiable(); // // Act // var result = await _userController.CreateUser(newUser); // // Assert // var createdResult = Assert.IsType(result); // Assert.Equal(newUser.Id, createdResult.RouteValues["id"]); //} //[Fact] //public async Task DeletePlayer_ReturnsOk_WhenPlayerExists() //{ // // Arrange // var id = 1; // var existingPlayer = new UserDTO // { // Id = id, // Pseudo = "ExistingUser", // Email = "existing@unitaire.fr", // ImageProfil = "http://existingimage.com", // Password = "existingPassword123" // }; // _mockUserService.Setup(service => service.GetUserById(id)).ReturnsAsync(existingPlayer); // _mockUserService.Setup(service => service.RemoveUser(existingPlayer.Id)).Verifiable(); // // Act // var result = await _userController.DeletePlayer(id); // // Assert // Assert.IsType(result); //} } }