Ajout de GetNumberOfInquiries et des tests unitaires associés + modification de certaines valeurs de retour dans les controller

pull/49/head
Johnny RATTON 1 year ago
parent bcfb7b3e93
commit 9fd24d9726

@ -1,5 +1,7 @@
using Asp.Versioning;
using Dto; using Dto;
using Entities; using Entities;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Model.OrderCriteria; using Model.OrderCriteria;
using Shared; using Shared;
@ -7,12 +9,16 @@ using Shared.Mapper;
namespace API.Controllers; namespace API.Controllers;
[Route("api/v{version:apiVersion}/[controller]")]
[Authorize]
[ApiVersion("1.0")]
[ApiController]
public class BlackListController(ILogger<UsersController> logger, IBlackListService<BlackListDto> blackListService) : ControllerBase public class BlackListController(ILogger<UsersController> logger, IBlackListService<BlackListDto> blackListService) : ControllerBase
{ {
[HttpGet("user/ban/{page:int}/{number:int}")] [HttpGet("user/ban/{page:int}/{number:int}")]
[ProducesResponseType(typeof(IEnumerable<BlackListDto>), 200)] [ProducesResponseType(typeof(IEnumerable<BlackListDto>), 200)]
[ProducesResponseType(typeof(string), 204)] [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(); var users = blackListService.GetBannedUsers(page, number, orderCriteria).ToList();
if (users.Count == 0) if (users.Count == 0)
@ -32,7 +38,7 @@ public class BlackListController(ILogger<UsersController> logger, IBlackListServ
{ {
var nb = blackListService.GetNumberOfBannedUsers(); var nb = blackListService.GetNumberOfBannedUsers();
logger.LogInformation("[INFORMATION] {nb} Email(s) banni(s) trouvé(s)", nb); logger.LogInformation("[INFORMATION] {nb} Email(s) banni(s) trouvé(s)", nb);
return Ok(nb); return Ok(new KeyValuePair<string,int>("number",nb));
} }
[HttpPost("user/ban")] [HttpPost("user/ban")]
@ -59,7 +65,7 @@ public class BlackListController(ILogger<UsersController> logger, IBlackListServ
if (success) if (success)
{ {
logger.LogInformation("[INFORMATION] L'utilisateur avec le pseudo {username} a été banni pour 2 ans.", username); logger.LogInformation("[INFORMATION] L'utilisateur avec le pseudo {username} a été banni pour 2 ans.", username);
return Ok(); return Ok(new KeyValuePair<string,bool>("success", true));
} }
else else
{ {
@ -77,7 +83,7 @@ public class BlackListController(ILogger<UsersController> logger, IBlackListServ
if (success) if (success)
{ {
logger.LogInformation("[INFORMATION] L'utilisateur avec l'email {email} a été débanni.", email); logger.LogInformation("[INFORMATION] L'utilisateur avec l'email {email} a été débanni.", email);
return Ok(); return Ok(new KeyValuePair<string,bool>("success", true));
} }
else else
{ {

@ -39,6 +39,16 @@ namespace API.Controllers
return Ok(_inquiryDataService.GetInquiries(page, number, orderCriteria)); 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<string,int>("nbInquiries", nbInquiry));
}
[HttpGet("inquiry/{id:int}")] [HttpGet("inquiry/{id:int}")]
[ProducesResponseType(typeof(InquiryDto), 200)] [ProducesResponseType(typeof(InquiryDto), 200)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]

@ -29,6 +29,11 @@ public class InquiryDataServiceApi(IInquiryService<InquiryEntity> inquiryService
return inquiries.Select(i => i.FromEntityToDto()).ToList(); return inquiries.Select(i => i.FromEntityToDto()).ToList();
} }
public int GetNumberOfInquiries()
{
return inquiryService.GetNumberOfInquiries();
}
public InquiryDto GetInquiryById(int id) => inquiryService.GetInquiryById(id).FromEntityToDto(); public InquiryDto GetInquiryById(int id) => inquiryService.GetInquiryById(id).FromEntityToDto();
public InquiryDto GetInquiryByTitle(string title) => inquiryService.GetInquiryByTitle(title).FromEntityToDto(); public InquiryDto GetInquiryByTitle(string title) => inquiryService.GetInquiryByTitle(title).FromEntityToDto();

@ -48,6 +48,11 @@ public class InquiryDataService : IInquiryService<InquiryEntity>
return inquiries; return inquiries;
} }
public int GetNumberOfInquiries()
{
return DbContext.Inquiries.Count();
}
public InquiryEntity GetInquiryById(int id) public InquiryEntity GetInquiryById(int id)
{ {
var inquiryEntity = DbContext.Inquiries.FirstOrDefault(i => i.Id == id); var inquiryEntity = DbContext.Inquiries.FirstOrDefault(i => i.Id == id);

@ -142,7 +142,6 @@ public class UserDataService : IUserService<UserEntity>
{ {
return false; return false;
} }
DbContext.Users.Remove(userEntity); DbContext.Users.Remove(userEntity);
DbContext.SaveChangesAsync(); DbContext.SaveChangesAsync();
return true; return true;

@ -5,6 +5,7 @@ namespace Shared;
public interface IInquiryService<TInquiry> public interface IInquiryService<TInquiry>
{ {
public IEnumerable<TInquiry> GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria); public IEnumerable<TInquiry> GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria);
public int GetNumberOfInquiries();
public TInquiry GetInquiryById(int id); public TInquiry GetInquiryById(int id);
public TInquiry GetInquiryByTitle(string title); public TInquiry GetInquiryByTitle(string title);
public bool DeleteInquiry(int id); public bool DeleteInquiry(int id);

@ -46,7 +46,7 @@ public class BlackListUnitTest
var usersController = new BlackListController(new NullLogger<UsersController>(), _blackListService.Object); var usersController = new BlackListController(new NullLogger<UsersController>(), _blackListService.Object);
var userResult = usersController.BanUser("Test1"); var userResult = usersController.BanUser("Test1");
Assert.Equal(typeof(OkResult), userResult.GetType()); Assert.Equal(typeof(OkObjectResult), userResult.GetType());
} }
[Fact] [Fact]
@ -68,7 +68,7 @@ public class BlackListUnitTest
var usersController = new BlackListController(new NullLogger<UsersController>(), _blackListService.Object); var usersController = new BlackListController(new NullLogger<UsersController>(), _blackListService.Object);
var userResult = usersController.UnbanUser("example@email.com"); var userResult = usersController.UnbanUser("example@email.com");
Assert.Equal(typeof(OkResult), userResult.GetType()); Assert.Equal(typeof(OkObjectResult), userResult.GetType());
} }
[Fact] [Fact]
@ -94,7 +94,7 @@ public class BlackListUnitTest
}); });
var blackListController = new BlackListController(new NullLogger<UsersController>(), _blackListService.Object); var blackListController = new BlackListController(new NullLogger<UsersController>(), _blackListService.Object);
var result = blackListController.GetUsers(1,10,BlackListOdrerCriteria.None); var result = blackListController.GetBannedUsers(1,10,BlackListOdrerCriteria.None);
Assert.Equal(typeof(OkObjectResult), result.GetType()); Assert.Equal(typeof(OkObjectResult), result.GetType());
if (result is OkObjectResult okObjectResult) if (result is OkObjectResult okObjectResult)
{ {
@ -118,7 +118,7 @@ public class BlackListUnitTest
}); });
var blackListController = new BlackListController(new NullLogger<UsersController>(), _blackListService.Object); var blackListController = new BlackListController(new NullLogger<UsersController>(), _blackListService.Object);
var result = blackListController.GetUsers(1,10,BlackListOdrerCriteria.ByEmail); var result = blackListController.GetBannedUsers(1,10,BlackListOdrerCriteria.ByEmail);
Assert.Equal(typeof(OkObjectResult), result.GetType()); Assert.Equal(typeof(OkObjectResult), result.GetType());
if (result is OkObjectResult okObjectResult) if (result is OkObjectResult okObjectResult)
{ {
@ -142,7 +142,7 @@ public class BlackListUnitTest
}); });
var blackListController = new BlackListController(new NullLogger<UsersController>(), _blackListService.Object); var blackListController = new BlackListController(new NullLogger<UsersController>(), _blackListService.Object);
var result = blackListController.GetUsers(1,10,BlackListOdrerCriteria.ByExpirationDate); var result = blackListController.GetBannedUsers(1,10,BlackListOdrerCriteria.ByExpirationDate);
Assert.Equal(typeof(OkObjectResult), result.GetType()); Assert.Equal(typeof(OkObjectResult), result.GetType());
if (result is OkObjectResult okObjectResult) if (result is OkObjectResult okObjectResult)
{ {
@ -163,7 +163,7 @@ public class BlackListUnitTest
var userResult = usersController.GetNumberOfBannedUsers(); var userResult = usersController.GetNumberOfBannedUsers();
Assert.Equal(typeof(OkObjectResult), userResult.GetType()); Assert.Equal(typeof(OkObjectResult), userResult.GetType());
Assert.Equal(10, (userResult as OkObjectResult).Value); Assert.Equal(10, ((KeyValuePair<string,int>)(userResult as OkObjectResult).Value).Value);
} }
private IEnumerable<BlackListDto> GetBlackList() private IEnumerable<BlackListDto> GetBlackList()

@ -37,6 +37,25 @@ public class InquiryUnitTest
} }
} }
[Fact]
public void GetNumberOfInquiries()
{
var inquiryList = GetInquiriesData();
_inquiryService.Setup(x => x.GetNumberOfInquiries())
.Returns(4);
var inquiryController = new InquiriesController(_inquiryService.Object, new NullLogger<InquiriesController>());
var inquiriesResult = inquiryController.GetNumberOfInquiries();
if (inquiriesResult is OkObjectResult okObjectResult)
{
var valeur = (KeyValuePair<string,int>)okObjectResult.Value;
Assert.NotNull(valeur);
Assert.Equal(GetInquiriesData().Count, valeur.Value);
}
}
[Fact] [Fact]
public void GetInquiresListFail() public void GetInquiresListFail()
{ {

@ -37,6 +37,19 @@ public class TestInquiryDataService
Assert.Equal(2, result.Count()); 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] [Fact]
public void GetInquiries_OrderedByTitle_ReturnsCorrectNumberOfInquiries() public void GetInquiries_OrderedByTitle_ReturnsCorrectNumberOfInquiries()
{ {

Loading…
Cancel
Save