From 9fd24d9726119a4a34259611d40bb41da8b3e706 Mon Sep 17 00:00:00 2001 From: "Johnny.Ratton" Date: Thu, 28 Mar 2024 10:40:15 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20GetNumberOfInquiries=20et=20des=20?= =?UTF-8?q?tests=20unitaires=20associ=C3=A9s=20+=20modification=20de=20cer?= =?UTF-8?q?taines=20valeurs=20de=20retour=20dans=20les=20controller?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/Controllers/BlackListController.cs | 14 ++++++++++---- .../API/Controllers/InquiriesController.cs | 10 ++++++++++ .../API/Service/InquiryDataServiceAPI.cs | 5 +++++ .../Service/InquiryDataService.cs | 5 +++++ .../DbDataManager/Service/UserDataService.cs | 1 - API_SQLuedo/Shared/IInquiryService.cs | 1 + API_SQLuedo/TestAPI/BlackListUnitTest.cs | 12 ++++++------ API_SQLuedo/TestAPI/InquiryUnitTest.cs | 19 +++++++++++++++++++ .../TestEF/Service/TestInquiryDataService.cs | 13 +++++++++++++ 9 files changed, 69 insertions(+), 11 deletions(-) diff --git a/API_SQLuedo/API/Controllers/BlackListController.cs b/API_SQLuedo/API/Controllers/BlackListController.cs index 7f2bc56..18e5e66 100644 --- a/API_SQLuedo/API/Controllers/BlackListController.cs +++ b/API_SQLuedo/API/Controllers/BlackListController.cs @@ -1,5 +1,7 @@ +using Asp.Versioning; using Dto; using Entities; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Model.OrderCriteria; using Shared; @@ -7,12 +9,16 @@ using Shared.Mapper; namespace API.Controllers; +[Route("api/v{version:apiVersion}/[controller]")] +[Authorize] +[ApiVersion("1.0")] +[ApiController] public class BlackListController(ILogger logger, IBlackListService blackListService) : ControllerBase { [HttpGet("user/ban/{page:int}/{number:int}")] [ProducesResponseType(typeof(IEnumerable), 200)] [ProducesResponseType(typeof(string), 204)] - public IActionResult GetUsers(int page, int number, BlackListOdrerCriteria orderCriteria) + public IActionResult GetBannedUsers(int page, int number, BlackListOdrerCriteria orderCriteria) { var users = blackListService.GetBannedUsers(page, number, orderCriteria).ToList(); if (users.Count == 0) @@ -32,7 +38,7 @@ public class BlackListController(ILogger logger, IBlackListServ { var nb = blackListService.GetNumberOfBannedUsers(); logger.LogInformation("[INFORMATION] {nb} Email(s) banni(s) trouvé(s)", nb); - return Ok(nb); + return Ok(new KeyValuePair("number",nb)); } [HttpPost("user/ban")] @@ -59,7 +65,7 @@ public class BlackListController(ILogger logger, IBlackListServ if (success) { logger.LogInformation("[INFORMATION] L'utilisateur avec le pseudo {username} a été banni pour 2 ans.", username); - return Ok(); + return Ok(new KeyValuePair("success", true)); } else { @@ -77,7 +83,7 @@ public class BlackListController(ILogger logger, IBlackListServ if (success) { logger.LogInformation("[INFORMATION] L'utilisateur avec l'email {email} a été débanni.", email); - return Ok(); + return Ok(new KeyValuePair("success", true)); } else { diff --git a/API_SQLuedo/API/Controllers/InquiriesController.cs b/API_SQLuedo/API/Controllers/InquiriesController.cs index 0b412bc..07b8c31 100644 --- a/API_SQLuedo/API/Controllers/InquiriesController.cs +++ b/API_SQLuedo/API/Controllers/InquiriesController.cs @@ -38,6 +38,16 @@ namespace API.Controllers _logger.LogInformation("[INFORMATION] {nb} Enquête(s) trouvée(s)", nbInquiry); return Ok(_inquiryDataService.GetInquiries(page, number, orderCriteria)); } + + [HttpGet("inquiries/number")] + [ProducesResponseType(typeof(InquiryDto), 200)] + [ProducesResponseType(typeof(string), 204)] + public IActionResult GetNumberOfInquiries() + { + var nbInquiry = _inquiryDataService.GetNumberOfInquiries(); + _logger.LogInformation("[INFORMATION] {nb} Enquête(s) trouvée(s)", nbInquiry); + return Ok(new KeyValuePair("nbInquiries", nbInquiry)); + } [HttpGet("inquiry/{id:int}")] [ProducesResponseType(typeof(InquiryDto), 200)] diff --git a/API_SQLuedo/API/Service/InquiryDataServiceAPI.cs b/API_SQLuedo/API/Service/InquiryDataServiceAPI.cs index 3e7d3a8..1244877 100644 --- a/API_SQLuedo/API/Service/InquiryDataServiceAPI.cs +++ b/API_SQLuedo/API/Service/InquiryDataServiceAPI.cs @@ -29,6 +29,11 @@ public class InquiryDataServiceApi(IInquiryService inquiryService return inquiries.Select(i => i.FromEntityToDto()).ToList(); } + public int GetNumberOfInquiries() + { + return inquiryService.GetNumberOfInquiries(); + } + public InquiryDto GetInquiryById(int id) => inquiryService.GetInquiryById(id).FromEntityToDto(); public InquiryDto GetInquiryByTitle(string title) => inquiryService.GetInquiryByTitle(title).FromEntityToDto(); diff --git a/API_SQLuedo/DbDataManager/Service/InquiryDataService.cs b/API_SQLuedo/DbDataManager/Service/InquiryDataService.cs index 0d69699..ef92e20 100644 --- a/API_SQLuedo/DbDataManager/Service/InquiryDataService.cs +++ b/API_SQLuedo/DbDataManager/Service/InquiryDataService.cs @@ -48,6 +48,11 @@ public class InquiryDataService : IInquiryService return inquiries; } + public int GetNumberOfInquiries() + { + return DbContext.Inquiries.Count(); + } + public InquiryEntity GetInquiryById(int id) { var inquiryEntity = DbContext.Inquiries.FirstOrDefault(i => i.Id == id); diff --git a/API_SQLuedo/DbDataManager/Service/UserDataService.cs b/API_SQLuedo/DbDataManager/Service/UserDataService.cs index 4676d15..22277ce 100644 --- a/API_SQLuedo/DbDataManager/Service/UserDataService.cs +++ b/API_SQLuedo/DbDataManager/Service/UserDataService.cs @@ -142,7 +142,6 @@ public class UserDataService : IUserService { return false; } - DbContext.Users.Remove(userEntity); DbContext.SaveChangesAsync(); return true; diff --git a/API_SQLuedo/Shared/IInquiryService.cs b/API_SQLuedo/Shared/IInquiryService.cs index 68d27b8..daf2c6a 100644 --- a/API_SQLuedo/Shared/IInquiryService.cs +++ b/API_SQLuedo/Shared/IInquiryService.cs @@ -5,6 +5,7 @@ namespace Shared; public interface IInquiryService { public IEnumerable GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria); + public int GetNumberOfInquiries(); public TInquiry GetInquiryById(int id); public TInquiry GetInquiryByTitle(string title); public bool DeleteInquiry(int id); diff --git a/API_SQLuedo/TestAPI/BlackListUnitTest.cs b/API_SQLuedo/TestAPI/BlackListUnitTest.cs index 5bdd550..aea91ad 100644 --- a/API_SQLuedo/TestAPI/BlackListUnitTest.cs +++ b/API_SQLuedo/TestAPI/BlackListUnitTest.cs @@ -46,7 +46,7 @@ public class BlackListUnitTest var usersController = new BlackListController(new NullLogger(), _blackListService.Object); var userResult = usersController.BanUser("Test1"); - Assert.Equal(typeof(OkResult), userResult.GetType()); + Assert.Equal(typeof(OkObjectResult), userResult.GetType()); } [Fact] @@ -68,7 +68,7 @@ public class BlackListUnitTest var usersController = new BlackListController(new NullLogger(), _blackListService.Object); var userResult = usersController.UnbanUser("example@email.com"); - Assert.Equal(typeof(OkResult), userResult.GetType()); + Assert.Equal(typeof(OkObjectResult), userResult.GetType()); } [Fact] @@ -94,7 +94,7 @@ public class BlackListUnitTest }); var blackListController = new BlackListController(new NullLogger(), _blackListService.Object); - var result = blackListController.GetUsers(1,10,BlackListOdrerCriteria.None); + var result = blackListController.GetBannedUsers(1,10,BlackListOdrerCriteria.None); Assert.Equal(typeof(OkObjectResult), result.GetType()); if (result is OkObjectResult okObjectResult) { @@ -118,7 +118,7 @@ public class BlackListUnitTest }); var blackListController = new BlackListController(new NullLogger(), _blackListService.Object); - var result = blackListController.GetUsers(1,10,BlackListOdrerCriteria.ByEmail); + var result = blackListController.GetBannedUsers(1,10,BlackListOdrerCriteria.ByEmail); Assert.Equal(typeof(OkObjectResult), result.GetType()); if (result is OkObjectResult okObjectResult) { @@ -142,7 +142,7 @@ public class BlackListUnitTest }); var blackListController = new BlackListController(new NullLogger(), _blackListService.Object); - var result = blackListController.GetUsers(1,10,BlackListOdrerCriteria.ByExpirationDate); + var result = blackListController.GetBannedUsers(1,10,BlackListOdrerCriteria.ByExpirationDate); Assert.Equal(typeof(OkObjectResult), result.GetType()); if (result is OkObjectResult okObjectResult) { @@ -163,7 +163,7 @@ public class BlackListUnitTest var userResult = usersController.GetNumberOfBannedUsers(); Assert.Equal(typeof(OkObjectResult), userResult.GetType()); - Assert.Equal(10, (userResult as OkObjectResult).Value); + Assert.Equal(10, ((KeyValuePair)(userResult as OkObjectResult).Value).Value); } private IEnumerable GetBlackList() diff --git a/API_SQLuedo/TestAPI/InquiryUnitTest.cs b/API_SQLuedo/TestAPI/InquiryUnitTest.cs index 9bfdb68..b6bf727 100644 --- a/API_SQLuedo/TestAPI/InquiryUnitTest.cs +++ b/API_SQLuedo/TestAPI/InquiryUnitTest.cs @@ -36,6 +36,25 @@ public class InquiryUnitTest Assert.True(inquiryList.SequenceEqual(valeur as IEnumerable, new InquiryIdEqualityComparer())); } } + + [Fact] + public void GetNumberOfInquiries() + { + var inquiryList = GetInquiriesData(); + _inquiryService.Setup(x => x.GetNumberOfInquiries()) + .Returns(4); + var inquiryController = new InquiriesController(_inquiryService.Object, new NullLogger()); + + var inquiriesResult = inquiryController.GetNumberOfInquiries(); + + if (inquiriesResult is OkObjectResult okObjectResult) + { + var valeur = (KeyValuePair)okObjectResult.Value; + + Assert.NotNull(valeur); + Assert.Equal(GetInquiriesData().Count, valeur.Value); + } + } [Fact] public void GetInquiresListFail() diff --git a/API_SQLuedo/TestEF/Service/TestInquiryDataService.cs b/API_SQLuedo/TestEF/Service/TestInquiryDataService.cs index 1a6fb96..bb9e322 100644 --- a/API_SQLuedo/TestEF/Service/TestInquiryDataService.cs +++ b/API_SQLuedo/TestEF/Service/TestInquiryDataService.cs @@ -37,6 +37,19 @@ public class TestInquiryDataService Assert.Equal(2, result.Count()); } + [Fact] + public void GetNumberOfInquiries() + { + _dbContext.Inquiries.Add(new InquiryEntity { Id = 1, Title = "Test1", Description = "Desc1", IsUser = true }); + _dbContext.Inquiries.Add(new InquiryEntity { Id = 2, Title = "Test2", Description = "Desc2", IsUser = false }); + _dbContext.Inquiries.Add(new InquiryEntity { Id = 3, Title = "Test3", Description = "Desc3", IsUser = true }); + _dbContext.SaveChanges(); + + var result = _inquiryDataService.GetNumberOfInquiries(); + + Assert.Equal(3, result); + } + [Fact] public void GetInquiries_OrderedByTitle_ReturnsCorrectNumberOfInquiries() {