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 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<DatabaseFixture>
@ -110,3 +111,4 @@ namespace UnitTestsEntities
}
}
*/

@ -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)

@ -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<IEnumerable<Model.Activity>?> GetActivityByIdAsync(int id)
public async Task<Model.Activity?> 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<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();
}
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)

@ -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<T> where T : class
{
@ -18,7 +17,7 @@ public class HttpRequest<T> 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<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 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<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}");
}
/*!
* \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<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()
@ -52,7 +52,7 @@ public class HttpRequest<T> where T : class
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}");
}
@ -63,9 +63,9 @@ public class HttpRequest<T> 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<T> PostAsync(T activity)
{
@ -75,10 +75,10 @@ public class HttpRequest<T> 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<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.
* \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)

@ -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é

Loading…
Cancel
Save