From 125c6be8e1f6224210202f2b71f864c16528634d Mon Sep 17 00:00:00 2001 From: masapountz Date: Mon, 11 Mar 2024 09:31:52 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20des=20test=20Moq=20et=20ajout=20de?= =?UTF-8?q?=20m=C3=A9thodes=20d'extensions=20pour=20un=20UserDto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DbDataManager/Service/UserDataService.cs | 2 +- .../Extensions/UserDtoIdEqualityComparer.cs | 22 ++++++ API_SQLuedo/TestAPI/StatusCodeUserUnitTest.cs | 28 ++++++++ API_SQLuedo/TestAPI/TestAPI.csproj | 1 + API_SQLuedo/TestAPI/UserUnitTest.cs | 71 ++++++++++++++++++- 5 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 API_SQLuedo/TestAPI/Extensions/UserDtoIdEqualityComparer.cs create mode 100644 API_SQLuedo/TestAPI/StatusCodeUserUnitTest.cs diff --git a/API_SQLuedo/DbDataManager/Service/UserDataService.cs b/API_SQLuedo/DbDataManager/Service/UserDataService.cs index e9d32ce..b45ee92 100644 --- a/API_SQLuedo/DbDataManager/Service/UserDataService.cs +++ b/API_SQLuedo/DbDataManager/Service/UserDataService.cs @@ -71,7 +71,7 @@ public class UserDataService : IUserService // Permet d'indiquer en Db que l'entité a été modifiée. DbContext.Entry(updatingUser).State = EntityState.Modified; DbContext.SaveChangesAsync(); - return updatingUser; + return updatingUser; } public UserEntity CreateUser(string username, string password, string email, bool isAdmin) diff --git a/API_SQLuedo/TestAPI/Extensions/UserDtoIdEqualityComparer.cs b/API_SQLuedo/TestAPI/Extensions/UserDtoIdEqualityComparer.cs new file mode 100644 index 0000000..886ba53 --- /dev/null +++ b/API_SQLuedo/TestAPI/Extensions/UserDtoIdEqualityComparer.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Dto; + +namespace TestAPI.Extensions +{ + class UserDtoIdEqualityComparer : EqualityComparer + { + public override bool Equals(UserDTO x, UserDTO y) + { + return x.Id == y.Id; + } + + public override int GetHashCode(UserDTO obj) + { + return obj.Id; + } + } +} diff --git a/API_SQLuedo/TestAPI/StatusCodeUserUnitTest.cs b/API_SQLuedo/TestAPI/StatusCodeUserUnitTest.cs new file mode 100644 index 0000000..1afc3f2 --- /dev/null +++ b/API_SQLuedo/TestAPI/StatusCodeUserUnitTest.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using API.Controllers; +using API.Service; +using DbContextLib; +using DbDataManager.Service; +using Dto; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Infrastructure; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using Npgsql.Internal; +using StubbedContextLib; +using Moq; + +namespace TestAPI +{ + public class StatusCodeUserUnitTest + { + + + + } +} diff --git a/API_SQLuedo/TestAPI/TestAPI.csproj b/API_SQLuedo/TestAPI/TestAPI.csproj index a49e76b..a6cc9e9 100644 --- a/API_SQLuedo/TestAPI/TestAPI.csproj +++ b/API_SQLuedo/TestAPI/TestAPI.csproj @@ -22,6 +22,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/API_SQLuedo/TestAPI/UserUnitTest.cs b/API_SQLuedo/TestAPI/UserUnitTest.cs index 76342ea..bc57987 100644 --- a/API_SQLuedo/TestAPI/UserUnitTest.cs +++ b/API_SQLuedo/TestAPI/UserUnitTest.cs @@ -1,15 +1,84 @@ +using System.Collections; using API.Controllers; +using API.Service; using DbContextLib; using DbDataManager.Service; using Dto; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging.Abstractions; +using ModelToEntities.Business; +using Moq; +using Shared; namespace TestAPI { public class UserUnitTest { - + private readonly Mock> userService; + public UserUnitTest() + { + userService = new Mock>(); + } + + [Fact] + public void GetUserList() + { + //arrange + var productList = GetUsersData(); + userService.Setup(x => x.GetUsers(1 ,5)) + .Returns(productList); + var userController = new UserController(new NullLogger(), userService.Object); + + //act + var userResult = userController.GetUsers(1,5); + + if (userResult is OkObjectResult okObjectResult) + { + var valeur = okObjectResult.Value; + + Assert.NotNull(valeur); + Assert.Equal(GetUsersData().ToString(), valeur.ToString()); + Assert.True(productList.SequenceEqual(valeur as IEnumerable,)); + + } + + } + + + + private List GetUsersData() + { + List usersData = new List(3) + { + new ( + 0, + "Useruser", + "motdepasse", + "adressemail@gmail.com" , + + true + ), + new + ( + 1, + "Leuser", + "motdepasse", + "deuxadresse@gmail.com" , + + false + ), + new + ( + 2, + "gygyggyg", + "ennodlavehc", + "thirdadress@gmail.com" , + + false + ), + }; + return usersData; + } } } \ No newline at end of file