Addition of modifications of Mr Chevaldonne and rehabilitation of unit tests 🐛
continuous-integration/drone/push Build is passing Details

pull/8/head
Emre KARTAL 2 years ago
parent b603bcdd0d
commit 48f4b27ae3

@ -114,9 +114,26 @@ namespace ApiLol.Controllers
} }
// DELETE api/<RunePagesController>/5 // DELETE api/<RunePagesController>/5
[HttpDelete("{id}")] [HttpDelete("{name}")]
public void Delete(int id) public async Task<IActionResult> Delete(string name)
{ {
_logger.LogInformation("method {Action} - RUNE call with {name}", nameof(Delete), name);
try
{
var dtos = (await _manager.RunePagesMgr.GetItemByName(name, 0, await _manager.RunesMgr.GetNbItems()));
if (dtos.IsNullOrEmpty())
{
_logger.LogWarning("{name} was not found", name);
return NotFound($"{name} was not found");
}
await _manager.RunePagesMgr.DeleteItem(dtos.First());
return NoContent();
}
catch (Exception error)
{
_logger.LogError(error.Message);
return BadRequest(error.Message);
}
} }
} }
} }

@ -148,9 +148,10 @@ namespace ApiLol.Controllers
if (dtos.IsNullOrEmpty()) if (dtos.IsNullOrEmpty())
{ {
_logger.LogWarning("{name} was not found", name); _logger.LogWarning("{name} was not found", name);
return BadRequest(); return NotFound($"{name} was not found");
} }
return Ok(await _manager.RunesMgr.DeleteItem(dtos.First())); await _manager.RunesMgr.DeleteItem(dtos.First());
return NoContent();
} }
catch (Exception error) catch (Exception error)
{ {

@ -208,9 +208,10 @@ namespace ApiLol.Controllers
if (dtos.IsNullOrEmpty()) if (dtos.IsNullOrEmpty())
{ {
_logger.LogWarning("{name} was not found", name); _logger.LogWarning("{name} was not found", name);
return BadRequest(); return NotFound($"{name} was not found");
} }
return Ok(await _manager.SkinsMgr.DeleteItem(dtos.First())); await _manager.SkinsMgr.DeleteItem(dtos.First());
return NoContent();
} }
catch (Exception error) catch (Exception error)
{ {

@ -89,7 +89,8 @@ namespace ApiLol.Controllers.v1
_logger.LogInformation("method {Action} - CHAMPION - V1.0 call with {name}", nameof(Delete), name); _logger.LogInformation("method {Action} - CHAMPION - V1.0 call with {name}", nameof(Delete), name);
var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems())); var dtos = (await _manager.ChampionsMgr.GetItemByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
return Ok(await _manager.ChampionsMgr.DeleteItem(dtos.First())); await _manager.ChampionsMgr.DeleteItem(dtos.First());
return NoContent();
} }
} }

@ -229,9 +229,10 @@ namespace ApiLol.Controllers.v2
if (dtos.IsNullOrEmpty()) if (dtos.IsNullOrEmpty())
{ {
_logger.LogWarning("{name} was not found", name); _logger.LogWarning("{name} was not found", name);
return BadRequest(); return NotFound($"{name} was not found");
} }
return Ok(await _manager.ChampionsMgr.DeleteItem(dtos.First())); await _manager.ChampionsMgr.DeleteItem(dtos.First());
return NoContent();
} }
catch (Exception error) catch (Exception error)
{ {

@ -11,7 +11,7 @@ public class Champion : IEquatable<Champion>
get => name; get => name;
private init private init
{ {
if(string.IsNullOrWhiteSpace(value)) if (string.IsNullOrWhiteSpace(value))
{ {
name = "Unknown"; name = "Unknown";
return; return;
@ -26,7 +26,7 @@ public class Champion : IEquatable<Champion>
get => bio; get => bio;
set set
{ {
if(value == null) if (value == null)
{ {
bio = ""; bio = "";
return; return;
@ -54,7 +54,7 @@ public class Champion : IEquatable<Champion>
} }
public ReadOnlyCollection<Skin> Skins { get; private set; } public ReadOnlyCollection<Skin> Skins { get; private set; }
private List<Skin> skins = new (); private List<Skin> skins = new();
public ReadOnlyDictionary<string, int> Characteristics { get; private set; } public ReadOnlyDictionary<string, int> Characteristics { get; private set; }
private readonly Dictionary<string, int> characteristics = new Dictionary<string, int>(); private readonly Dictionary<string, int> characteristics = new Dictionary<string, int>();
@ -81,7 +81,7 @@ public class Champion : IEquatable<Champion>
public void AddCharacteristics(params Tuple<string, int>[] someCharacteristics) public void AddCharacteristics(params Tuple<string, int>[] someCharacteristics)
{ {
foreach(var c in someCharacteristics) foreach (var c in someCharacteristics)
{ {
characteristics[c.Item1] = c.Item2; characteristics[c.Item1] = c.Item2;
} }
@ -94,12 +94,12 @@ public class Champion : IEquatable<Champion>
{ {
get get
{ {
if(!characteristics.TryGetValue(label, out int value)) return null; if (!characteristics.TryGetValue(label, out int value)) return null;
else return value; else return value;
} }
set set
{ {
if(!value.HasValue) if (!value.HasValue)
{ {
RemoveCharacteristics(label); RemoveCharacteristics(label);
return; return;
@ -110,9 +110,9 @@ public class Champion : IEquatable<Champion>
public override bool Equals(object? obj) public override bool Equals(object? obj)
{ {
if(ReferenceEquals(obj, null)) return false; if (ReferenceEquals(obj, null)) return false;
if(ReferenceEquals(obj, this)) return true; if (ReferenceEquals(obj, this)) return true;
if(GetType() != obj.GetType()) return false; if (GetType() != obj.GetType()) return false;
return Equals(obj as Champion); return Equals(obj as Champion);
} }
@ -125,22 +125,22 @@ public class Champion : IEquatable<Champion>
public override string ToString() public override string ToString()
{ {
StringBuilder sb = new StringBuilder($"{Name} ({Class})"); StringBuilder sb = new StringBuilder($"{Name} ({Class})");
if(!string.IsNullOrWhiteSpace(bio)) if (!string.IsNullOrWhiteSpace(bio))
{ {
sb.AppendLine($"\t{bio}"); sb.AppendLine($"\t{bio}");
} }
if(characteristics.Any()) if (characteristics.Any())
{ {
sb.AppendLine("\tCharacteristics:"); sb.AppendLine("\tCharacteristics:");
foreach(var characteristic in characteristics) foreach (var characteristic in characteristics)
{ {
sb.AppendLine($"\t\t{characteristic.Key} - {characteristic.Value}"); sb.AppendLine($"\t\t{characteristic.Key} - {characteristic.Value}");
} }
} }
if(skills.Any()) if (skills.Any())
{ {
sb.AppendLine("\tSkills:"); sb.AppendLine("\tSkills:");
foreach(var skill in Skills) foreach (var skill in Skills)
{ {
sb.AppendLine($"\t\t{skill.Name} - {skill.Description}"); sb.AppendLine($"\t\t{skill.Name} - {skill.Description}");
} }

@ -10,7 +10,7 @@ namespace Model
get => name; get => name;
private init private init
{ {
if(string.IsNullOrWhiteSpace(value)) if (string.IsNullOrWhiteSpace(value))
{ {
throw new ArgumentException("a Rune Page must have a name"); throw new ArgumentException("a Rune Page must have a name");
} }
@ -32,7 +32,7 @@ namespace Model
{ {
get get
{ {
if(runes.TryGetValue(category, out Rune? rune)) if (runes.TryGetValue(category, out Rune? rune))
{ {
return rune; return rune;
} }
@ -40,9 +40,10 @@ namespace Model
} }
set set
{ {
if(value == null) if (value == null)
{ {
runes.Remove(category); runes.Remove(category);
return;
} }
runes[category] = value!; runes[category] = value!;
CheckRunes(category); CheckRunes(category);
@ -51,7 +52,7 @@ namespace Model
private void CheckRunes(Category newRuneCategory) private void CheckRunes(Category newRuneCategory)
{ {
switch(newRuneCategory) switch (newRuneCategory)
{ {
case Category.Major: case Category.Major:
UpdateMajorFamily(Category.Minor1, true); UpdateMajorFamily(Category.Minor1, true);
@ -76,18 +77,18 @@ namespace Model
{ {
runes.TryGetValue(cat1, out Rune? rune1); runes.TryGetValue(cat1, out Rune? rune1);
runes.TryGetValue(cat2, out Rune? rune2); runes.TryGetValue(cat2, out Rune? rune2);
if(rune1 == null || rune2 == null) if (rune1 == null || rune2 == null)
{ {
return null; return null;
} }
return rune1.Family == rune2.Family; return rune1.Family == rune2.Family;
} }
private void UpdateMajorFamily(Category minor, bool expectedValue) private void UpdateMajorFamily(Category cat, bool expectedValue)
{ {
if(CheckFamilies(Category.Major, minor).GetValueOrDefault(expectedValue) == expectedValue) if (CheckFamilies(Category.Major, cat).GetValueOrDefault(expectedValue) != expectedValue)
{ {
runes.Remove(minor); runes.Remove(cat);
} }
} }
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -188,13 +188,12 @@ namespace ApiTests
//Act //Act
var total = await stub.ChampionsMgr.GetNbItems(); var total = await stub.ChampionsMgr.GetNbItems();
var championsResult = await champs.Delete("Akali"); var championsResult = await champs.Delete("Renekton");
//Assert //Assert
var objectResult = championsResult as OkObjectResult; var objectResult = championsResult as NoContentResult;
Assert.IsNotNull(objectResult); Assert.IsNotNull(objectResult);
Assert.AreEqual(objectResult.Value, true);
Assert.AreNotEqual(await stub.ChampionsMgr.GetNbItems(), total); Assert.AreNotEqual(await stub.ChampionsMgr.GetNbItems(), total);
} }

@ -208,13 +208,12 @@ namespace ApiTests
//Act //Act
var total = await stub.ChampionsMgr.GetNbItems(); var total = await stub.ChampionsMgr.GetNbItems();
var championsResult = await champs.Delete("Akali"); var championsResult = await champs.Delete("Renekton");
//Assert //Assert
var objectResult = championsResult as OkObjectResult; var objectResult = championsResult as NoContentResult;
Assert.IsNotNull(objectResult); Assert.IsNotNull(objectResult);
Assert.AreEqual(objectResult.Value, true);
Assert.AreNotEqual(await stub.ChampionsMgr.GetNbItems(), total); Assert.AreNotEqual(await stub.ChampionsMgr.GetNbItems(), total);
} }

@ -76,7 +76,7 @@ namespace ApiTests
} }
[TestMethod] [TestMethod]
public async Task TestCountChampion() public async Task TestCountRunes()
{ {
//Arange //Arange
var runeDto = new RuneDto var runeDto = new RuneDto
@ -116,7 +116,7 @@ namespace ApiTests
} }
[TestMethod] [TestMethod]
public async Task TestPutSkin() public async Task TestPutRune()
{ {
//Arange //Arange
var runeDto = new RuneDto var runeDto = new RuneDto
@ -157,20 +157,19 @@ namespace ApiTests
} }
[TestMethod] [TestMethod]
public async Task TestDeleteChampion() public async Task TestDeleteRune()
{ {
//Arange //Arange
//Act //Act
var total = await stub.RunesMgr.GetNbItems(); var total = await stub.RunesMgr.GetNbItems();
var runesResult = await runes.Delete("Conqueror"); var result = await runes.Delete("Conqueror");
//Assert //Assert
var objectResult = runesResult as OkObjectResult; var objectResult = result as NoContentResult;
Assert.IsNotNull(objectResult); Assert.IsNotNull(objectResult);
Assert.AreEqual(objectResult.Value, true);
Assert.AreNotEqual(await stub.RunesMgr.GetNbItems(), total); Assert.AreNotEqual(await stub.RunesMgr.GetNbItems(), total);
} }

@ -52,12 +52,12 @@ namespace ApiTests
//Arange //Arange
var SkinDto = new SkinDtoC var SkinDto = new SkinDtoC
{ {
Name = "Project", Name = "Project Pyke",
Description = "Test", Description = "Test",
Icon = "", Icon = "",
Image = new LargeImageDto(), Image = new LargeImageDto(),
Price = 900, Price = 900,
ChampionName = "aatrox" ChampionName = "Volibear"
}; };
//Act //Act
@ -76,17 +76,17 @@ namespace ApiTests
} }
[TestMethod] [TestMethod]
public async Task TestCountChampion() public async Task TestCountSkins()
{ {
//Arange //Arange
var SkinDto = new SkinDtoC var SkinDto = new SkinDtoC
{ {
Name = "Project", Name = "Project Pyke",
Description = "Test", Description = "Test",
Icon = "", Icon = "",
Image = new LargeImageDto(), Image = new LargeImageDto(),
Price = 900, Price = 900,
ChampionName = "aatrox" ChampionName = "Volibear"
}; };
//Act //Act
@ -127,7 +127,7 @@ namespace ApiTests
Icon = "", Icon = "",
Image = new LargeImageDto(), Image = new LargeImageDto(),
Price = 900, Price = 900,
ChampionName = "aatrox" ChampionName = "Volibear"
}; };
var SkinDtoPut = new SkinDtoC var SkinDtoPut = new SkinDtoC
{ {
@ -136,7 +136,7 @@ namespace ApiTests
Icon = "", Icon = "",
Image = new LargeImageDto(), Image = new LargeImageDto(),
Price = 850, Price = 850,
ChampionName = "aatrox" ChampionName = "Volibear"
}; };
//Act //Act
@ -161,20 +161,19 @@ namespace ApiTests
} }
[TestMethod] [TestMethod]
public async Task TestDeleteChampion() public async Task TestDeleteSkin()
{ {
//Arange //Arange
//Act //Act
var total = await stub.SkinsMgr.GetNbItems(); var total = await stub.SkinsMgr.GetNbItems();
var skinsResult = await skins.Delete("Stinger"); var skinsResult = await skins.Delete("Project");
//Assert //Assert
var objectResult = skinsResult as OkObjectResult; var objectResult = skinsResult as NoContentResult;
Assert.IsNotNull(objectResult); Assert.IsNotNull(objectResult);
Assert.AreEqual(objectResult.Value, true);
Assert.AreNotEqual(await stub.SkinsMgr.GetNbItems(), total); Assert.AreNotEqual(await stub.SkinsMgr.GetNbItems(), total);
} }

Loading…
Cancel
Save