From bd833445190bb4d426baee9ab96f21db0bb7bffc Mon Sep 17 00:00:00 2001 From: dave Date: Sun, 17 Mar 2024 00:30:20 +0100 Subject: [PATCH] try --- .../ActivityRepository.cs | 4 +- src/Tests/UnitTestsModel/EnumMapperTest.cs | 2 +- .../WebAPIConsoleTests/ActivityServiceAPI.cs | 11 ++--- src/Tests/WebAPIConsoleTests/HttpRequest.cs | 40 +++++++++---------- src/Tests/WebAPIConsoleTests/Program.cs | 7 ++-- 5 files changed, 34 insertions(+), 30 deletions(-) diff --git a/src/Tests/RepositoriesUnitTest/ActivityRepository.cs b/src/Tests/RepositoriesUnitTest/ActivityRepository.cs index e67b3ce..4a93c56 100644 --- a/src/Tests/RepositoriesUnitTest/ActivityRepository.cs +++ b/src/Tests/RepositoriesUnitTest/ActivityRepository.cs @@ -6,12 +6,13 @@ using StubbedContextLib; using System.Linq; using Microsoft.Data.Sqlite; using System; +using EFMappers; using Shared; using Model; using Moq; using Microsoft.Extensions.Logging; using Entities; - +/* namespace UnitTestsEntities { public class ActivityRepositoryTests : IClassFixture @@ -110,3 +111,4 @@ namespace UnitTestsEntities } } +*/ \ No newline at end of file diff --git a/src/Tests/UnitTestsModel/EnumMapperTest.cs b/src/Tests/UnitTestsModel/EnumMapperTest.cs index e2dc382..5d3c0d7 100644 --- a/src/Tests/UnitTestsModel/EnumMapperTest.cs +++ b/src/Tests/UnitTestsModel/EnumMapperTest.cs @@ -17,7 +17,7 @@ namespace UnitTestsModel [InlineData("ByWeight", Shared.AthleteOrderCriteria.ByWeight)] [InlineData("ByDateOfBirth", Shared.AthleteOrderCriteria.ByDateOfBirth)] [InlineData("ByEmail", Shared.AthleteOrderCriteria.ByEmail)] - [InlineData("ByIsCoach", Shared.AthleteOrderCriteria.ByIsCoach)] + [InlineData("ByRole", Shared.AthleteOrderCriteria.ByRole)] [InlineData(null, Shared.AthleteOrderCriteria.None)] [InlineData("InvalidValue", Shared.AthleteOrderCriteria.None)] public void ToEnum_WithValidValue_ReturnsCorrectEnumValue(string? value, Shared.AthleteOrderCriteria expected) diff --git a/src/Tests/WebAPIConsoleTests/ActivityServiceAPI.cs b/src/Tests/WebAPIConsoleTests/ActivityServiceAPI.cs index 78f042f..1ca9031 100644 --- a/src/Tests/WebAPIConsoleTests/ActivityServiceAPI.cs +++ b/src/Tests/WebAPIConsoleTests/ActivityServiceAPI.cs @@ -9,6 +9,7 @@ using Dto; using Model.Repository; using Shared; using APIMappers; +using Model; /*! * \brief Implémentation de l'interface IActivityRepository pour récupérer des activités via un service HTTP. @@ -53,10 +54,10 @@ public class ActivityServiceAPI : IActivityRepository * \param id L'identifiant du livre à récupérer. * \return Une tâche représentant l'opération asynchrone qui retourne une liste d'Activity. */ - public async Task?> GetActivityByIdAsync(int id) + public async Task GetActivityByIdAsync(int id) { var activityDtos = await myRequest.GetByIdAsync(id); - return activityDtos.ToModels(); + return activityDtos.ToModel(); } /*! @@ -66,7 +67,7 @@ public class ActivityServiceAPI : IActivityRepository */ public async Task AddActivity(Model.Activity activity) { - return await myRequest.PostAsync(activity.ToDto()).ToModel(); + return (await myRequest.PostAsync(activity.ToDto())).ToModel(); } /*! @@ -98,9 +99,9 @@ public class ActivityServiceAPI : IActivityRepository return myRequest.GetNbItems(); } - public Task?> GetActivitiesByUser(int userId, int index, int count, ActivityOrderCriteria orderCriteria, bool descending = false) + public async Task?> GetActivitiesByUser(int userId, int index, int count, ActivityOrderCriteria orderCriteria, bool descending = false) { - return (List)myRequest.GetActivitiesByUser(userId, index, count, orderCriteria, descending).ToModels(); + return (await myRequest.GetActivitiesByUser(userId, index, count, orderCriteria, descending)).ToModels(); } public Task GetNbActivitiesByUser(int userId) diff --git a/src/Tests/WebAPIConsoleTests/HttpRequest.cs b/src/Tests/WebAPIConsoleTests/HttpRequest.cs index ac4f976..eff6e00 100644 --- a/src/Tests/WebAPIConsoleTests/HttpRequest.cs +++ b/src/Tests/WebAPIConsoleTests/HttpRequest.cs @@ -1,6 +1,5 @@ /*! * \file HttpRequest.cs - * \author Antoine PEREDERII * \brief Fichier contenant la classe HttpRequest. */ @@ -10,7 +9,7 @@ using Dto; using Shared; /*! - * \brief Classe représentant un client HTTP pour les requêtes vers un service de gestion de livres. + * \brief Classe représentant un client HTTP pour les requêtes vers un service de gestion de elément. */ public class HttpRequest where T : class { @@ -18,7 +17,7 @@ public class HttpRequest where T : class public HttpClient HttpClient => _httpClient; /*! - * \brief Récupère tous les livres de manière asynchrone. + * \brief Récupère tous les activitée de manière asynchrone. * \return Une tâche représentant l'opération asynchrone qui retourne une liste de T. */ public async Task> GetAllAsync() @@ -27,24 +26,25 @@ public class HttpRequest where T : class } /*! - * \brief Récupère les activités par index et compte de manière asynchrone. + * \brief Récupère les élements par index et compte de manière asynchrone. * \param index L'index de départ pour la pagination. * \param count Le nombre d'éléments à récupérer. * \return Une tâche représentant l'opération asynchrone qui retourne une liste de T. - */ - public async Task> GetAsync((ActivityOrderCriteria, AthleteOrderCriteria) criteria, bool descending, int index, int count) + */ + // [TODO] enum + public async Task> GetAsync(Enum criteria, bool descending, int index, int count) { return await _httpClient.GetFromJsonAsync>($"?OrderingPropertyName={criteria}&Descending={descending}&Index={index}&Count={count}"); } /*! - * \brief Récupère un livre par son identifiant de manière asynchrone. - * \param id L'identifiant du livre à récupérer. + * \brief Récupère un elément par son identifiant de manière asynchrone. + * \param id L'identifiant du elément à récupérer. * \return Une tâche représentant l'opération asynchrone qui retourne une liste de T. */ - public async Task> GetByIdAsync(int id) + public async Task GetByIdAsync(int id) { - return await _httpClient.GetFromJsonAsync>($"{id}"); + return await _httpClient.GetFromJsonAsync($"{id}"); } public Task GetNbItems() @@ -52,7 +52,7 @@ public class HttpRequest where T : class return _httpClient.GetFromJsonAsync("count"); } - public Task?> GetActivitiesByUser(int userId, int index, int count, (ActivityOrderCriteria, AthleteOrderCriteria) orderCriteria, bool descending = false) + public Task?> GetActivitiesByUser(int userId, int index, int count, ActivityOrderCriteria orderCriteria, bool descending = false) { return _httpClient.GetFromJsonAsync?>($"?userId={userId}&index={index}&count={count}&orderCriteria={orderCriteria}&descending={descending}"); } @@ -63,9 +63,9 @@ public class HttpRequest where T : class } /*! - * \brief Ajoute un livre de manière asynchrone. - * \param book Le livre à ajouter. - * \return Une tâche représentant l'opération asynchrone qui retourne le livre ajouté (T). + * \brief Ajoute une activity de manière asynchrone. + * \param book Le elément à ajouter. + * \return Une tâche représentant l'opération asynchrone qui retourne le activity ajouté (T). */ public async Task PostAsync(T activity) { @@ -75,10 +75,10 @@ public class HttpRequest where T : class } /*! - * \brief Met à jour un livre de manière asynchrone. - * \param id L'identifiant du livre à mettre à jour. - * \param book Les nouvelles données du livre à mettre à jour. - * \return Une tâche représentant l'opération asynchrone qui retourne le livre mis à jour (T). + * \brief Met à jour un elément de manière asynchrone. + * \param id L'identifiant du elément à mettre à jour. + * \param book Les nouvelles données du elément à mettre à jour. + * \return Une tâche représentant l'opération asynchrone qui retourne le elément mis à jour (T). */ public async Task PutAsync(int id, T activity) { @@ -88,8 +88,8 @@ public class HttpRequest where T : class } /*! - * \brief Supprime un livre de manière asynchrone. - * \param id L'identifiant du livre à supprimer. + * \brief Supprime un elément de manière asynchrone. + * \param id L'identifiant du elément à supprimer. * \return Une tâche représentant l'opération asynchrone. */ public async Task DeleteAsync(int id) diff --git a/src/Tests/WebAPIConsoleTests/Program.cs b/src/Tests/WebAPIConsoleTests/Program.cs index f421479..0d5cb97 100644 --- a/src/Tests/WebAPIConsoleTests/Program.cs +++ b/src/Tests/WebAPIConsoleTests/Program.cs @@ -1,4 +1,5 @@ -using Dto; +using APIMappers; +using Dto; using Model; using Model.Repository; using Shared; @@ -27,12 +28,12 @@ foreach (var myActivity in res) // Ajouter une nouvelle activité Console.WriteLine("Ajout d'un nouveau livre : "); var newActivity = new ActivityDto { Type = "New Activity", StartTime = DateTime.Now, EndTime = DateTime.Now, DataSource = new DataSourceDto{}, Athlete = new UserDto{ Username = "Hello", FirstName = "feee", Email = "exemple.com", LastName = "dddd", Sexe = "M" } }; -var addedActivity = await myConsoleTest.AddActivity(newActivity); +var addedActivity = await myConsoleTest.AddActivity(newActivity.ToModel()); Console.WriteLine($"Id: {addedActivity.Id}, Type: {addedActivity.Type}, StartTime: {addedActivity.StartTime}, EndTime: {addedActivity.EndTime}, DataSource: {addedActivity.DataSource}, Athlete: {addedActivity.Athlete}"); // Mettre à jour l'activity ajouté Console.WriteLine("Mise à jour du livre ajouté : "); -var activity = await myConsoleTest.UpdateActivity(1, new ActivityDto { Id = 1, Type = "Updated Activity", StartTime = DateTime.Now, EndTime = DateTime.Now, DataSource = new DataSourceDto{}, Athlete = new UserDto{ Username = "Hello", FirstName = "feee", Email = "exemple.com", LastName = "dddd", Sexe = "M" } }); +var activity = await myConsoleTest.UpdateActivity(1, new ActivityDto { Id = 1, Type = "Updated Activity", StartTime = DateTime.Now, EndTime = DateTime.Now, DataSource = new DataSourceDto{}, Athlete = new UserDto{ Username = "Hello", FirstName = "feee", Email = "exemple.com", LastName = "dddd", Sexe = "M" } }.ToModel()); Console.WriteLine($"Id: {activity.Id}, Type: {activity.Type}, StartTime: {activity.StartTime}, EndTime: {activity.EndTime}, DataSource: {activity.DataSource}, Athlete: {activity.Athlete}"); // Supprimer l'activity ajouté