From 2c442d99d7634b45e375af6fd0dc455e1dd6a9c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yana=C3=ABl=20GRETTE?= Date: Wed, 3 Feb 2021 09:49:17 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20des=20tests=20pour=20la=20r=C3=A9cup?= =?UTF-8?q?=C3=A9ration=20des=20collaborateurs=20par=20Guid,=20de=20la=20r?= =?UTF-8?q?=C3=A9cup=C3=A9ration=20des=20collaborateurs=20par=20r=C3=A9f?= =?UTF-8?q?=C3=A9rent=20et=20du=20count?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/CollaborateurServiceTests.cs | 88 ++++++++++++++++++- EPAServeur/Context/DataSeeder.cs | 4 +- EPAServeur/Services/CollaborateurService.cs | 14 ++- 3 files changed, 101 insertions(+), 5 deletions(-) diff --git a/EPAServeur.Tests/Services/CollaborateurServiceTests.cs b/EPAServeur.Tests/Services/CollaborateurServiceTests.cs index 73b9d1e..f8ac6ef 100644 --- a/EPAServeur.Tests/Services/CollaborateurServiceTests.cs +++ b/EPAServeur.Tests/Services/CollaborateurServiceTests.cs @@ -38,7 +38,7 @@ namespace EPAServeur.Tests.Services context.SaveChanges(); // Ajout du jeu de données pour les tests - DataSeeder.AddNotes(context); + DataSeeder.AddRereferentEP(context); // 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 @@ -340,7 +340,93 @@ namespace EPAServeur.Tests.Services } #endregion + #region GetCollaborateurs par referent + [TestCase("aa36f34c-9041-42f5-9db3-6536fe7f1696")] + [TestCase("01ee85ff-d7f3-494b-b1de-26ced8fbfa0d")] + [TestCase("e7820f92-eab1-42f5-ae96-5c16e71ff1e6")] + [TestCase("de98a866-736f-4295-a669-92a8694e2ee3")] + [TestCase("642bc07f-051a-4088-8a73-425b44998673")] + public async Task GetCollaborateurByReferentPlusCount(Guid idReferent) + { + ICollaborateurService collaborateurService = new CollaborateurService(collaborateurApi, context); + IEnumerable collaborateurs = await collaborateurService.GetCollaborateursByReferentAsync(idReferent, true, 1, 15, "", ""); + int count = await collaborateurService.GetCollaborateursCountByReferentAsync(idReferent, ""); + Assert.AreEqual(count, collaborateurs.Count()); + } + + + [TestCase("8a68e248-65f8-11eb-ae93-0242ac130002")] + [TestCase("c43a975f-2b83-423b-96e5-ff98c6bd5bd3")] + [TestCase("e6b66b62-9ddb-423e-8f58-0a647514ecfe")] + [TestCase("ca1f480a-9918-4cea-819c-62e5c7f2b332")] + public void GetCollaborateurByReferent_ReferentNotFound(Guid idReferent) + { + ICollaborateurService collaborateurService = new CollaborateurService(collaborateurApi, context); + AsyncTestDelegate exception = () => collaborateurService.GetCollaborateursByReferentAsync(idReferent, true, 1, 15, "", ""); + Assert.ThrowsAsync(typeof(ReferentNotFoundException), exception); + } + + #endregion + + #region GetCollaborateurs by guids + + [Test] + public async Task GetCollaborateurByGuids() + { + ICollaborateurService collaborateurService = new CollaborateurService(collaborateurApi, context); + List guids = new List(); + guids.Add(new Guid("ebd911ef-a6a8-4047-afdc-9a9066aa1a07")); + guids.Add(new Guid("71d33f6d-695a-4dc6-ae1a-b1605fd2073d")); + guids.Add(new Guid("56e3d82d-4be4-4449-a1f7-b4004b6bd186")); + guids.Add(new Guid("a43b6f4f-f199-4dd0-93b6-a1cb2c0a0d14")); + guids.Add(new Guid("a0f40e2a-cc03-4032-a627-5389e1281c64")); + guids.Add(new Guid("a29d707c-5d82-4c48-bed1-a6d1c1710047")); + IEnumerable collaborateurs = await collaborateurService.GetCollaborateurDTOsAsync(guids); + foreach(CollaborateurDTO c in collaborateurs) + { + Assert.IsTrue(guids.Contains(c.Id)); + } + Assert.AreEqual(guids.Count, collaborateurs.Count()); + } + + [Test] + public async Task GetCollaborateurByGuidsAvecIdsNonExistantEnPlus() + { + ICollaborateurService collaborateurService = new CollaborateurService(collaborateurApi, context); + List guids = new List(); + guids.Add(new Guid("b645f582-0a5d-48dc-97a1-4ebb0fb3a29f")); + guids.Add(new Guid()); + guids.Add(new Guid("f42f65cb-dcc1-407f-a048-f67efbe88d65")); + guids.Add(new Guid("e634de52-d921-4ae8-954d-215f39712041")); + guids.Add(new Guid("ad63ff07-6dae-4b02-8d49-1cacf1e8a224")); + guids.Add(new Guid("25d2b0ce-5c95-4ccc-98bb-63b06c4ee4ad")); + guids.Add(new Guid()); + IEnumerable collaborateurs = await collaborateurService.GetCollaborateurDTOsAsync(guids); + foreach (CollaborateurDTO c in collaborateurs) + { + Assert.IsTrue(guids.Contains(c.Id)); + } + Assert.AreEqual(guids.Count, collaborateurs.Count()+2); + } + + [Test] + public async Task GetCollaborateurByGuidsAvecIdsNonExistantUniquement() + { + ICollaborateurService collaborateurService = new CollaborateurService(collaborateurApi, context); + List guids = new List(); + guids.Add(new Guid()); + guids.Add(new Guid()); + guids.Add(new Guid()); + guids.Add(new Guid()); + guids.Add(new Guid()); + guids.Add(new Guid()); + IEnumerable collaborateurs = await collaborateurService.GetCollaborateurDTOsAsync(guids); + Assert.AreNotEqual(guids.Count, collaborateurs.Count()); + Assert.AreEqual(0, collaborateurs.Count()); + } + #endregion + } } diff --git a/EPAServeur/Context/DataSeeder.cs b/EPAServeur/Context/DataSeeder.cs index 72e2c2b..5396148 100644 --- a/EPAServeur/Context/DataSeeder.cs +++ b/EPAServeur/Context/DataSeeder.cs @@ -975,7 +975,7 @@ namespace EPAServeur.Context referentEP = new ReferentEP() { - IdCollaborateur = new Guid(), + IdCollaborateur = new Guid("de98a866-736f-4295-a669-92a8694e2ee3"), IdReferent = new Guid("aa36f34c-9041-42f5-9db3-6536fe7f1696") }; @@ -1031,7 +1031,7 @@ namespace EPAServeur.Context referentEP = new ReferentEP() { - IdCollaborateur = new Guid("17b87130-0e9d-4b78-b0e3-a11e5f70318d"), + IdCollaborateur = new Guid("e7820f92-eab1-42f5-ae96-5c16e71ff1e6"), IdReferent = new Guid("de98a866-736f-4295-a669-92a8694e2ee3") }; diff --git a/EPAServeur/Services/CollaborateurService.cs b/EPAServeur/Services/CollaborateurService.cs index f3c161b..64a91db 100644 --- a/EPAServeur/Services/CollaborateurService.cs +++ b/EPAServeur/Services/CollaborateurService.cs @@ -188,15 +188,23 @@ namespace EPAServeur.Services List collaborateursIds = (from r in context.ReferentEP where r.IdReferent.Value.Equals(idReferent) select (Guid?) r.IdCollaborateur).ToList(); - + if (collaborateursIds.Count == 0) + return new List(); IEnumerable collaborateurs = await collaborateurApi.ChercherCollabAsync(collabsId: collaborateursIds); int skip = (numPage.Value - 1) * parPage.Value; int take = parPage.Value; var tasks = collaborateurs.Select(c => GetCollaborateurDTOAsync(c, false)); IEnumerable collaborateursDTO = await Task.WhenAll(tasks); - if (texte != null) + if (texte != null && texte != "") collaborateursDTO = TriTexte(collaborateursDTO, texte.ToLower()); + + if (tri != null) + collaborateursDTO = TriAttribut(collaborateursDTO, tri); + + if (asc != null && asc == false) + collaborateursDTO = collaborateursDTO.Reverse(); + return collaborateursDTO.Skip(skip).Take(take); } @@ -215,6 +223,8 @@ namespace EPAServeur.Services List collaborateursIds = (from r in context.ReferentEP where r.IdReferent.Value.Equals(idReferent) select (Guid?)r.IdCollaborateur).ToList(); + if (collaborateursIds.Count == 0) + return 0; IEnumerable collaborateurs = await collaborateurApi.ChercherCollabAsync(collabsId: collaborateursIds);