Fix: GetChampions, issue on filtrage
continuous-integration/drone/push Build is passing Details

master
Nathan BOILEAU 2 years ago
parent 5aabac6125
commit 3eabcfa96e

@ -18,13 +18,18 @@ namespace EFLol.DBDataManager
{
private MyDbContext _context;
public EFChampionManager()
{
_context = new MyDbContext();
}
public async Task<Champion?> AddItem(Champion? item)
{
if (item == null)
{
return null;
}
var addItem = await _context.AddAsync(item);
var addItem = await _context.AddAsync<Champion>(item);
await _context.SaveChangesAsync();
return addItem.Entity;
@ -53,10 +58,7 @@ namespace EFLol.DBDataManager
throw new NotImplementedException();
}
public Task<int> GetNbItems()
{
throw new NotImplementedException();
}
public async Task<int> GetNbItems() => _context.Champions.Count();
public async Task<IEnumerable<Champion?>> GetItems(int index, int count, string? orderingPropertyName = null, bool @descending = false)
{

@ -26,7 +26,7 @@ namespace EFLol
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlite("Data Source=loldb.db");
optionsBuilder.UseSqlite("Data Source=../EFLol/loldb.db");
}
}

@ -23,7 +23,7 @@ namespace TestUnitaire
// Act
var nbInListBefore = data.ChampionsMgr.GetNbItems().Result;
var result = await controller.Post(champDTO);
var result = await controller.AddChampion(champDTO);
var nbInListAfter = data.ChampionsMgr.GetNbItems().Result;
// Assert
@ -47,9 +47,9 @@ namespace TestUnitaire
// Act
// Call method POST to add a champion
var result = await controller.Post(champDTO);
var result = await controller.AddChampion(champDTO);
// Call method GET to get the champion
var resultGet = await controller.GetChampion(name);
var resultGet = await controller.GetChampionByName(name);
// Assert
Assert.Equal(name, champDTO.Name);
@ -71,10 +71,10 @@ namespace TestUnitaire
// Act
// Add a champion
var champDTO = new ChampionDTO(name, "Ancienne bio", "icon.png");
var resultPost = await controller.Post(champDTO);
var resultPost = await controller.AddChampion(champDTO);
// Call method PUT to change the bio of a champion
var resultPut = await controller.Put(name, bio);
var resultPut = await controller.UpdateChampion(name, bio);
var champion = (await data.ChampionsMgr.GetItemsByName(name, 0, 1)).First();
var bioOfChampion = champion.Bio;
@ -99,10 +99,10 @@ namespace TestUnitaire
// Act
// Add a champion
var champDTO = new ChampionDTO(name, "Ancienne bio", "icon.png");
var resultPost = await controller.Post(champDTO);
var resultPost = await controller.AddChampion(champDTO);
// Call method DELETE to delete the champion
var resultDelete = await controller.Delete(name);
var resultDelete = await controller.DeleteChampion(name);
// Assert
// Does the type of the result is a OkObjectResult

@ -25,7 +25,7 @@ namespace apiLOL.Controllers
[HttpGet]
[ProducesResponseType(typeof(ChampionPageDTO), 200)]
public async Task<IActionResult> Get([FromQuery] int index = 0, int count = 10, string? name = "")
public async Task<IActionResult> GetChampions([FromQuery] int index = 0, int count = 10, string? name = "")
{
//FromQuery permet de filtrer dans la collection de champions en fonction du nom
// Possible de faire une classe PageRequest pour gérer les paramètres index et count
@ -49,7 +49,7 @@ namespace apiLOL.Controllers
[HttpGet]
[Route("{name}")]
[ProducesResponseType(typeof(ChampionDTO), 200)]
public async Task<IActionResult> GetChampion(string name)
public async Task<IActionResult> GetChampionByName(string name)
{
_logger.LogInformation($"methode GetChampion de ControllerChampions appelée avec le paramètre {name}");
try
@ -66,7 +66,7 @@ namespace apiLOL.Controllers
[HttpPost]
public async Task<IActionResult> Post(ChampionDTO champDTO)
public async Task<IActionResult> AddChampion(ChampionDTO champDTO)
{
_logger.LogInformation($"methode Post de ControllerChampions appelée avec le paramètre {champDTO.Name}");
try
@ -74,7 +74,7 @@ namespace apiLOL.Controllers
Champion tmp = champDTO.ToModel();
Champion champion = await _dataManager.AddItem(tmp);
ChampionDTO dtoChamp = champion.ToDTO();
return CreatedAtAction(nameof(GetChampion), new {name = dtoChamp.Name}, dtoChamp);
return CreatedAtAction(nameof(GetChampionByName), new {name = dtoChamp.Name}, dtoChamp);
}
catch (Exception ex)
{
@ -84,7 +84,7 @@ namespace apiLOL.Controllers
}
[HttpPut("{name}")]
public async Task<IActionResult> Put(string name, string bio)
public async Task<IActionResult> UpdateChampion(string name, string bio)
{
_logger.LogInformation(
$"methode Put de ControllerChampions appelée avec le paramètre name: {name} et bio: {bio}");
@ -103,7 +103,7 @@ namespace apiLOL.Controllers
}
[HttpDelete("{name}")]
public async Task<IActionResult> Delete(string name)
public async Task<IActionResult> DeleteChampion(string name)
{
_logger.LogInformation($"methode Delete de ControllerChampions appelée avec le paramètre name: {name}");

@ -13,5 +13,9 @@
public string Name { get; set; }
public string Bio { get; set; }
public string Icon { get; set; }
public bool Equals(ChampionDTO other) => other.Name == this.Name && other.Bio == this.Bio && other.Icon == this.Icon;
public string toString() => $"ChampionDTO: {Name} {Bio} {Icon}";
}
}

Loading…
Cancel
Save