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 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<UsersController> logger, IBlackListService<BlackListDto> blackListService) : ControllerBase
{
[HttpGet("user/ban/{page:int}/{number:int}")]
[ProducesResponseType(typeof(IEnumerable<BlackListDto>), 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<UsersController> logger, IBlackListServ
{
var nb = blackListService.GetNumberOfBannedUsers();
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")]
@ -59,7 +65,7 @@ public class BlackListController(ILogger<UsersController> 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<string,bool>("success", true));
}
else
{
@ -77,7 +83,7 @@ public class BlackListController(ILogger<UsersController> logger, IBlackListServ
if (success)
{
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
{

@ -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<string,int>("nbInquiries", nbInquiry));
}
[HttpGet("inquiry/{id:int}")]
[ProducesResponseType(typeof(InquiryDto), 200)]

@ -29,6 +29,11 @@ public class InquiryDataServiceApi(IInquiryService<InquiryEntity> 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();

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

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

@ -5,6 +5,7 @@ namespace Shared;
public interface IInquiryService<TInquiry>
{
public IEnumerable<TInquiry> 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);

@ -46,7 +46,7 @@ public class BlackListUnitTest
var usersController = new BlackListController(new NullLogger<UsersController>(), _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<UsersController>(), _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<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());
if (result is OkObjectResult okObjectResult)
{
@ -118,7 +118,7 @@ public class BlackListUnitTest
});
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());
if (result is OkObjectResult okObjectResult)
{
@ -142,7 +142,7 @@ public class BlackListUnitTest
});
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());
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<string,int>)(userResult as OkObjectResult).Value).Value);
}
private IEnumerable<BlackListDto> GetBlackList()

@ -36,6 +36,25 @@ public class InquiryUnitTest
Assert.True(inquiryList.SequenceEqual(valeur as IEnumerable<InquiryDto>, new InquiryIdEqualityComparer()));
}
}
[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]
public void GetInquiresListFail()

@ -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()
{

Loading…
Cancel
Save