try
continuous-integration/drone/push Build is failing Details

tests_merging
David D'ALMEIDA 1 year ago
parent d4176ee17b
commit bd83344519

@ -6,12 +6,13 @@ using StubbedContextLib;
using System.Linq; using System.Linq;
using Microsoft.Data.Sqlite; using Microsoft.Data.Sqlite;
using System; using System;
using EFMappers;
using Shared; using Shared;
using Model; using Model;
using Moq; using Moq;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Entities; using Entities;
/*
namespace UnitTestsEntities namespace UnitTestsEntities
{ {
public class ActivityRepositoryTests : IClassFixture<DatabaseFixture> public class ActivityRepositoryTests : IClassFixture<DatabaseFixture>
@ -110,3 +111,4 @@ namespace UnitTestsEntities
} }
} }
*/

@ -17,7 +17,7 @@ namespace UnitTestsModel
[InlineData("ByWeight", Shared.AthleteOrderCriteria.ByWeight)] [InlineData("ByWeight", Shared.AthleteOrderCriteria.ByWeight)]
[InlineData("ByDateOfBirth", Shared.AthleteOrderCriteria.ByDateOfBirth)] [InlineData("ByDateOfBirth", Shared.AthleteOrderCriteria.ByDateOfBirth)]
[InlineData("ByEmail", Shared.AthleteOrderCriteria.ByEmail)] [InlineData("ByEmail", Shared.AthleteOrderCriteria.ByEmail)]
[InlineData("ByIsCoach", Shared.AthleteOrderCriteria.ByIsCoach)] [InlineData("ByRole", Shared.AthleteOrderCriteria.ByRole)]
[InlineData(null, Shared.AthleteOrderCriteria.None)] [InlineData(null, Shared.AthleteOrderCriteria.None)]
[InlineData("InvalidValue", Shared.AthleteOrderCriteria.None)] [InlineData("InvalidValue", Shared.AthleteOrderCriteria.None)]
public void ToEnum_WithValidValue_ReturnsCorrectEnumValue(string? value, Shared.AthleteOrderCriteria expected) public void ToEnum_WithValidValue_ReturnsCorrectEnumValue(string? value, Shared.AthleteOrderCriteria expected)

@ -9,6 +9,7 @@ using Dto;
using Model.Repository; using Model.Repository;
using Shared; using Shared;
using APIMappers; using APIMappers;
using Model;
/*! /*!
* \brief Implémentation de l'interface IActivityRepository pour récupérer des activités via un service HTTP. * \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. * \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. * \return Une tâche représentant l'opération asynchrone qui retourne une liste d'Activity.
*/ */
public async Task<IEnumerable<Model.Activity>?> GetActivityByIdAsync(int id) public async Task<Model.Activity?> GetActivityByIdAsync(int id)
{ {
var activityDtos = await myRequest.GetByIdAsync(id); var activityDtos = await myRequest.GetByIdAsync(id);
return activityDtos.ToModels(); return activityDtos.ToModel();
} }
/*! /*!
@ -66,7 +67,7 @@ public class ActivityServiceAPI : IActivityRepository
*/ */
public async Task<Model.Activity?> AddActivity(Model.Activity activity) public async Task<Model.Activity?> 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(); return myRequest.GetNbItems();
} }
public Task<IEnumerable<Model.Activity>?> GetActivitiesByUser(int userId, int index, int count, ActivityOrderCriteria orderCriteria, bool descending = false) public async Task<IEnumerable<Model.Activity>?> GetActivitiesByUser(int userId, int index, int count, ActivityOrderCriteria orderCriteria, bool descending = false)
{ {
return (List<ActivityDto>)myRequest.GetActivitiesByUser(userId, index, count, orderCriteria, descending).ToModels(); return (await myRequest.GetActivitiesByUser(userId, index, count, orderCriteria, descending)).ToModels();
} }
public Task<int> GetNbActivitiesByUser(int userId) public Task<int> GetNbActivitiesByUser(int userId)

@ -1,6 +1,5 @@
/*! /*!
* \file HttpRequest.cs * \file HttpRequest.cs
* \author Antoine PEREDERII
* \brief Fichier contenant la classe HttpRequest. * \brief Fichier contenant la classe HttpRequest.
*/ */
@ -10,7 +9,7 @@ using Dto;
using Shared; 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<T> where T : class public class HttpRequest<T> where T : class
{ {
@ -18,7 +17,7 @@ public class HttpRequest<T> where T : class
public HttpClient HttpClient => _httpClient; 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. * \return Une tâche représentant l'opération asynchrone qui retourne une liste de T.
*/ */
public async Task<List<T>> GetAllAsync() public async Task<List<T>> GetAllAsync()
@ -27,24 +26,25 @@ public class HttpRequest<T> 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 index L'index de départ pour la pagination.
* \param count Le nombre d'éléments à récupérer. * \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. * \return Une tâche représentant l'opération asynchrone qui retourne une liste de T.
*/ */
public async Task<List<T>> GetAsync((ActivityOrderCriteria, AthleteOrderCriteria) criteria, bool descending, int index, int count) // [TODO] enum
public async Task<List<T>> GetAsync(Enum criteria, bool descending, int index, int count)
{ {
return await _httpClient.GetFromJsonAsync<List<T>>($"?OrderingPropertyName={criteria}&Descending={descending}&Index={index}&Count={count}"); return await _httpClient.GetFromJsonAsync<List<T>>($"?OrderingPropertyName={criteria}&Descending={descending}&Index={index}&Count={count}");
} }
/*! /*!
* \brief Récupère un livre par son identifiant de manière asynchrone. * \brief Récupère un elément par son identifiant de manière asynchrone.
* \param id L'identifiant du livre à récupérer. * \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. * \return Une tâche représentant l'opération asynchrone qui retourne une liste de T.
*/ */
public async Task<List<T>> GetByIdAsync(int id) public async Task<T?> GetByIdAsync(int id)
{ {
return await _httpClient.GetFromJsonAsync<List<T>>($"{id}"); return await _httpClient.GetFromJsonAsync<T>($"{id}");
} }
public Task<int> GetNbItems() public Task<int> GetNbItems()
@ -52,7 +52,7 @@ public class HttpRequest<T> where T : class
return _httpClient.GetFromJsonAsync<int>("count"); return _httpClient.GetFromJsonAsync<int>("count");
} }
public Task<IEnumerable<T>?> GetActivitiesByUser(int userId, int index, int count, (ActivityOrderCriteria, AthleteOrderCriteria) orderCriteria, bool descending = false) public Task<IEnumerable<T>?> GetActivitiesByUser(int userId, int index, int count, ActivityOrderCriteria orderCriteria, bool descending = false)
{ {
return _httpClient.GetFromJsonAsync<IEnumerable<T>?>($"?userId={userId}&index={index}&count={count}&orderCriteria={orderCriteria}&descending={descending}"); return _httpClient.GetFromJsonAsync<IEnumerable<T>?>($"?userId={userId}&index={index}&count={count}&orderCriteria={orderCriteria}&descending={descending}");
} }
@ -63,9 +63,9 @@ public class HttpRequest<T> where T : class
} }
/*! /*!
* \brief Ajoute un livre de manière asynchrone. * \brief Ajoute une activity de manière asynchrone.
* \param book Le livre à ajouter. * \param book Le elément à ajouter.
* \return Une tâche représentant l'opération asynchrone qui retourne le livre ajouté (T). * \return Une tâche représentant l'opération asynchrone qui retourne le activity ajouté (T).
*/ */
public async Task<T> PostAsync(T activity) public async Task<T> PostAsync(T activity)
{ {
@ -75,10 +75,10 @@ public class HttpRequest<T> where T : class
} }
/*! /*!
* \brief Met à jour un livre de manière asynchrone. * \brief Met à jour un elément de manière asynchrone.
* \param id L'identifiant du livre à mettre à jour. * \param id L'identifiant du elément à mettre à jour.
* \param book Les nouvelles données du livre à 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 livre mis à jour (T). * \return Une tâche représentant l'opération asynchrone qui retourne le elément mis à jour (T).
*/ */
public async Task<T> PutAsync(int id, T activity) public async Task<T> PutAsync(int id, T activity)
{ {
@ -88,8 +88,8 @@ public class HttpRequest<T> where T : class
} }
/*! /*!
* \brief Supprime un livre de manière asynchrone. * \brief Supprime un elément de manière asynchrone.
* \param id L'identifiant du livre à supprimer. * \param id L'identifiant du elément à supprimer.
* \return Une tâche représentant l'opération asynchrone. * \return Une tâche représentant l'opération asynchrone.
*/ */
public async Task DeleteAsync(int id) public async Task DeleteAsync(int id)

@ -1,4 +1,5 @@
using Dto; using APIMappers;
using Dto;
using Model; using Model;
using Model.Repository; using Model.Repository;
using Shared; using Shared;
@ -27,12 +28,12 @@ foreach (var myActivity in res)
// Ajouter une nouvelle activité // Ajouter une nouvelle activité
Console.WriteLine("Ajout d'un nouveau livre : "); 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 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}"); 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é // Mettre à jour l'activity ajouté
Console.WriteLine("Mise à jour du livre 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}"); Console.WriteLine($"Id: {activity.Id}, Type: {activity.Type}, StartTime: {activity.StartTime}, EndTime: {activity.EndTime}, DataSource: {activity.DataSource}, Athlete: {activity.Athlete}");
// Supprimer l'activity ajouté // Supprimer l'activity ajouté

Loading…
Cancel
Save