test unitaire
continuous-integration/drone/push Build is failing Details

apiLOL
Lucas Delanier 2 years ago
parent 945b3f3bd9
commit 7dd5cc0d60

@ -126,8 +126,8 @@ namespace APILOL.Controllers.v1
{ {
if(champion2.Count() == 0) if(champion2.Count() == 0)
{ {
await dataManager.UpdateItem(champion.First(), championDTO.ToModel()); var newchampion = await dataManager.UpdateItem(champion.First(), championDTO.ToModel());
return Ok(); return Ok(newchampion);
} }
_logger.LogError("champion already exist with this unique name."); _logger.LogError("champion already exist with this unique name.");

@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ApiExplorer; using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Microsoft.AspNetCore.Mvc.Versioning; using Microsoft.AspNetCore.Mvc.Versioning;
using Microsoft.OpenApi.Models;
using Model; using Model;
using StubLib; using StubLib;
using Swashbuckle.Swagger; using Swashbuckle.Swagger;
@ -14,7 +15,11 @@ builder.Services.AddSingleton<IDataManager, StubData>();
// Add services to the container. // Add services to the container.
builder.Services.AddControllers(); builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer(); builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(); builder.Services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new OpenApiInfo { Title = "My API v1", Version = "v1" });
options.SwaggerDoc("v2", new OpenApiInfo { Title = "My API v2", Version = "v2" });
});
builder.Services.AddApiVersioning(opt => builder.Services.AddApiVersioning(opt =>
{ {

@ -9,6 +9,7 @@ using Microsoft.Extensions.Logging.Abstractions;
using Model; using Model;
using StubLib; using StubLib;
using System.Web.Http; using System.Web.Http;
using System.Web.Http.Results;
using ChampionsController = APILOL.Controllers.v1.ChampionsController; using ChampionsController = APILOL.Controllers.v1.ChampionsController;
namespace TestUnitaire namespace TestUnitaire
@ -16,43 +17,53 @@ namespace TestUnitaire
[TestClass] [TestClass]
public class UnitTestChampion public class UnitTestChampion
{ {
private readonly ChampionsController controller; [TestClass]
public class ChampionsControllerTest
{
private readonly StubData stub; private readonly StubData stub;
public UnitTestChampion() private readonly ChampionsController championsStub;
public ChampionsControllerTest()
{ {
stub = new StubData(); stub = new StubData();
controller = new ChampionsController(stub, new NullLogger<ChampionsController>()); championsStub = new ChampionsController(stub, new NullLogger<ChampionsController>());
} }
[TestMethod] [TestMethod]
public async Task TestGet() public async Task TestGetChampions()
{ {
var champions = await controller.Get(new PageRequest()); //Arrange
//Act
var total = await stub.ChampionsMgr.GetNbItems();
var champion = await championsStub.Get(new PageRequest() { Offset = 0, Limit = 2 });
//Assert //Assert
var resultObject = champions as OkObjectResult; var objectResult = champion as OkObjectResult;
Assert.IsNotNull(resultObject); Assert.IsNotNull(objectResult);
var resultType = resultObject?.Value as IEnumerable<ChampionDTO>;
Assert.IsNotNull(resultType);
Assert.AreEqual(resultType.Count(), await stub.ChampionsMgr.GetNbItems());
}
}
[TestMethod] [TestMethod]
public async Task TestPost() public async Task TestPostChampion()
{ {
//Arange //Arange
var champion = new ChampionDTO var ChampionDto = new ChampionDTO
{
Name = "Winrrard",
Bio = "The amazing champ",
Class = ChampionClass.Assassin,
Icon = "",
Image = new LargeImage(""),
Skills = new List<SkillDTO>()
{ {
Name = "Jinx", new SkillDTO() {Name = "skill", Description="Empty", Type = SkillType.Unknown}
Bio = "Awesome , great, fantastic Q", },
}; };
//Act //Act
var championsResult = await controller.Post(champion); var championsResult = await championsStub.Post(ChampionDto);
//Assert //Assert
var objectResult = championsResult as CreatedAtActionResult; var objectResult = championsResult as CreatedAtActionResult;
@ -60,37 +71,61 @@ namespace TestUnitaire
var champions = objectResult?.Value as ChampionDTO; var champions = objectResult?.Value as ChampionDTO;
Assert.IsNotNull(champions); Assert.IsNotNull(champions);
Assert.AreEqual("Winrrard", champions.Name);
Assert.AreEqual("skill", champions.Skills.First().Name);
Assert.AreEqual("Empty", champions.Skills.First().Description);
} }
[TestMethod] [TestMethod]
public async Task TestDelete() public async Task TestPutChampion()
{ {
//Arange //Arange
string championName = "Aatrox"; var ChampionDto = new ChampionDTO
{
Name = "Aatrox",
Bio = "The amazing champ",
Class = ChampionClass.Assassin,
Icon = "",
Image = new LargeImage(""),
Skills = new List<SkillDTO>()
{
new SkillDTO() {Name = "skill", Description="Empty", Type = SkillType.Unknown}
},
};
//Act
var championsResult = await championsStub.PutAsync(ChampionDto.Name, ChampionDto);
//Assert
var objectResult = championsResult as OkObjectResult;
Assert.IsNull(objectResult);
// Act
var result = await controller.Delete(championName);
// Assert
Assert.IsInstanceOfType(result, typeof(OkObjectResult));
Assert.IsTrue((await stub.ChampionsMgr.GetItemsByName(championName, 0, await stub.ChampionsMgr.GetNbItems())).Count() == 0);
} }
[TestMethod] [TestMethod]
public async Task TestUpdate() public async Task TestDeleteChampion()
{ {
//Arange //Arange
string championName = "Aatrox";
var updatedChampion = new ChampionDTO {Name = "Bibouuu", Bio = "Updated Bio" };
// Act //Act
var result = await controller.PutAsync(championName, updatedChampion); var total = await stub.ChampionsMgr.GetNbItems();
var championsResult = await championsStub.Delete("Aatrox");
//Assert
var objectResult = championsResult as OkObjectResult;
Assert.IsNotNull(objectResult);
Assert.AreNotEqual(await stub.ChampionsMgr.GetNbItems(), total);
}
// Assert
Assert.IsInstanceOfType(result, typeof(OkResult));
Assert.IsNotNull(stub.ChampionsMgr.GetItemsByName("Bibouuu",0, await stub.ChampionsMgr.GetNbItems()));
} }

Loading…
Cancel
Save