using EPAServeur.Context; using EPAServeur.IServices; using EPAServeur.Services; using IO.Swagger.ApiCollaborateur; using IO.Swagger.Controllers; using IO.Swagger.DTO; using IO.Swagger.Enum; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using NUnit.Framework; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; namespace EPAServeur.Tests.Controllers { [TestFixture] public class DemandeDelegationApiTests { #region Variables private EpContext context; private ILogger logger; IDemandeDelegationService demandeDelegationService; private ICollaborateurApi collaborateurApi; private ICollaborateurService collaborateurService; #endregion #region Setup [SetUp] public void Setup() { // Utilisation d'une base de données en mémoire var optionBuider = new DbContextOptionsBuilder() .UseInMemoryDatabase("server_ep_test") .Options; context = new EpContext(optionBuider); context.Database.EnsureDeleted(); context.Database.EnsureCreated(); context.SaveChanges(); DataSeeder.AddDemandeDelegationEP(context); // Ajout du jeu de données pour les tests //TO DO // Détache les entités du context car la base de données InMemory créé des conflits // entre les clés primaires lors d'un Update ou d'un Insert foreach (var entity in context.ChangeTracker.Entries()) { entity.State = EntityState.Detached; } collaborateurApi = new CollaborateurApi(); collaborateurService = new CollaborateurService(collaborateurApi, context); demandeDelegationService = new DemandeDelegationService(collaborateurService, context); } #endregion #region Tests Api [Test] public void GetDemandesDelegationReferent() { DemandesDelegationApiController demandesDelegationApiController = new DemandesDelegationApiController(demandeDelegationService, logger); Task task = demandesDelegationApiController.GetDemandesDelegationReferent(new Guid("01ee85ff-d7f3-494b-b1de-26ced8fbfa0d")); OkObjectResult result = task.Result as OkObjectResult; Assert.AreEqual(200, result.StatusCode); Assert.IsInstanceOf>(result.Value); } [Test] public void UpdateDemandeDelegation() { DemandesDelegationApiController demandesDelegationApiController = new DemandesDelegationApiController(demandeDelegationService, logger); DemandeDelegationDTO demandeDTO = new DemandeDelegationDTO() { Id = 1, DateDemande = new DateTime(), RaisonDemande = "Raison demande", EtatDemande = EtatDemande.Rejetee, RaisonRefus = "exemple raison refus" }; Task task = demandesDelegationApiController.UpdateDemandeDelegation(demandeDTO, demandeDTO.Id) ; OkObjectResult result = task.Result as OkObjectResult; Assert.AreEqual(200, result.StatusCode); Assert.IsInstanceOf(result.Value); } #endregion } }