diff --git a/EPAServeur.Tests/Services/FormationServiceTests.cs b/EPAServeur.Tests/Services/FormationServiceTests.cs index eea69fd..9dccbe2 100644 --- a/EPAServeur.Tests/Services/FormationServiceTests.cs +++ b/EPAServeur.Tests/Services/FormationServiceTests.cs @@ -80,6 +80,33 @@ namespace EPAServeur.Tests.Services Assert.AreEqual(new TypeFormationDTO { Id = 3, Libelle = "E-learning" }, formationDTO.Type); } + [Test] + public async Task GetFormationByIdAsync_PasseEnParamUnIdExistantDansLeJeuDeDonneesFictif_RetourneUneFormationSansParticipation() + { + // Arrange + FormationService formationService = new FormationService(epContext, collaborateurService); + long idFormation = 11; + + // Act + FormationDTO formationDTO = await formationService.GetFormationByIdAsync(idFormation); + + // Assert + Assert.AreEqual(idFormation, formationDTO.Id); + Assert.AreEqual("Formation Clean Architecture .Net Core", formationDTO.Intitule); + Assert.AreEqual(1, formationDTO.IdAgence); + Assert.AreEqual(new DateTime(2020, 04, 6, 9, 0, 0), formationDTO.DateDebut); + Assert.AreEqual(new DateTime(2020, 04, 11), formationDTO.DateFin); + Assert.AreEqual(15, formationDTO.Heure); + Assert.AreEqual(5, formationDTO.Jour); + Assert.AreEqual("Organisme1", formationDTO.Organisme); + Assert.False(formationDTO.EstCertifiee); + Assert.IsNull(formationDTO.Participations); + Assert.AreEqual(new OrigineFormationDTO { Id = 4, Libelle = "Formation réglementaire" }, formationDTO.Origine); + Assert.AreEqual(new StatutFormationDTO { Id = 4, Libelle = "Annulée" }, formationDTO.Statut); + Assert.AreEqual(new ModeFormationDTO { Id = 3, Libelle = "Présentiel" }, formationDTO.Mode); + Assert.AreEqual(new TypeFormationDTO { Id = 2, Libelle = "Interne" }, formationDTO.Type); + } + [TestCase(-1)] [TestCase(0)] [TestCase(999999)] @@ -172,6 +199,7 @@ namespace EPAServeur.Tests.Services [TestCase(true, "intitule")] [TestCase(true, null)] + [TestCase(true, "toto")] public async Task GetFormationsAsync_PasseEnParamAscEtTri_RetourneDesFormationsOrdonnanceeParIntituleCroissant(bool? asc, string tri) { // Arrange @@ -188,6 +216,7 @@ namespace EPAServeur.Tests.Services [TestCase(false, "intitule")] [TestCase(false, null)] + [TestCase(false, "toto")] public async Task GetFormationsAsync_PasseEnParamAscEtTri_RetourneDesFormationsOrdonnanceeParIntituleDecroissant(bool? asc, string tri) { // Arrange diff --git a/EPAServeur/Services/FormationService.cs b/EPAServeur/Services/FormationService.cs index fc35640..2cd314d 100644 --- a/EPAServeur/Services/FormationService.cs +++ b/EPAServeur/Services/FormationService.cs @@ -86,10 +86,8 @@ namespace EPAServeur.Services .FirstOrDefaultAsync(formation => formation.IdFormation == idFormation); if (formation == null) - throw new FormationNotFoundException(string.Format("Aucune formation trouvĂ©e avec l'id suivant: {0}.",idFormation)); + throw new FormationNotFoundException(string.Format("Aucune formation trouvĂ©e avec l'id suivant: {0}.", idFormation)); - if (formation.ParticipationsFormation.Count == 0) - return GetFormationDTO(formation); IEnumerable collaborateurDTOs = await GetCollaborateurDTOs(formation.ParticipationsFormation); @@ -666,7 +664,7 @@ namespace EPAServeur.Services } /// - /// RĂ©cuperer une liste de CollaborateurDTO contenant les collaborateurs et les rĂ©fĂ©rents + /// RĂ©cuperer une liste de CollaborateurDTO contenant les collaborateurs et les rĂ©fĂ©rents. Retourne null s'il n'y a aucune participation. /// /// /// @@ -681,7 +679,7 @@ namespace EPAServeur.Services } /// - /// RĂ©cuperer une liste de ParticipationFormationDTO en fonction d'une liste de ParticipationFormation et d'une liste de CollaborateurDTO + /// RĂ©cuperer une liste de ParticipationFormationDTO en fonction d'une liste de ParticipationFormation et d'une liste de CollaborateurDTO. Retourne null s'il n'y a aucune participation ou aucun collaborateur. /// /// /// @@ -695,7 +693,7 @@ namespace EPAServeur.Services participationFormationDTOs = participationsFormation.Select(participationFormation => GetParticipationFormationDTO(participationFormation, collaborateurDTOs)) .OrderBy(participationFormation => participationFormation.Collaborateur.Nom) .ThenBy(participationFormation => participationFormation.Collaborateur.Prenom).ToList(); - + return participationFormationDTOs; } @@ -727,17 +725,7 @@ namespace EPAServeur.Services /// private CollaborateurDTO GetCollaborateurDTO(ParticipationFormation participationFormation, IEnumerable collaborateurDTOs) { - CollaborateurDTO collaborateur; - - if (participationFormation == null) - return null; - - if (collaborateurDTOs == null || !collaborateurDTOs.Any()) - collaborateur = null; - else - collaborateur = collaborateurDTOs.FirstOrDefault(collaborateurDTO => collaborateurDTO.Id == participationFormation.DemandeFormation.Ep.IdCollaborateur); - - return collaborateur; + return collaborateurDTOs.FirstOrDefault(collaborateurDTO => collaborateurDTO.Id == participationFormation.DemandeFormation.Ep.IdCollaborateur); } /// @@ -750,19 +738,9 @@ namespace EPAServeur.Services CollaborateurDTO collaborateur; CollaborateurDTO referent; - if (ep == null) - return null; - if (collaborateurDTOs == null || !collaborateurDTOs.Any()) - { - collaborateur = null; - referent = null; - } - else - { - collaborateur = collaborateurDTOs.FirstOrDefault(collaborateurDTO => collaborateurDTO.Id == ep.IdCollaborateur); - referent = collaborateurDTOs.FirstOrDefault(collaborateurDTO => collaborateurDTO.Id == ep.IdReferent); - } + collaborateur = collaborateurDTOs.FirstOrDefault(collaborateurDTO => collaborateurDTO.Id == ep.IdCollaborateur); + referent = collaborateurDTOs.FirstOrDefault(collaborateurDTO => collaborateurDTO.Id == ep.IdReferent); EpInformationDTO epInformationDTO = new EpInformationDTO() {