🧪 Add failing model tests
continuous-integration/drone/push Build is passing Details

WORK-KMO2
Antoine PEREDERII 1 year ago
parent 2324a9657a
commit 9142dc8cef

@ -41,6 +41,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EFMappers", "EFMappers\EFMa
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "APIMappers", "APIMappers\APIMappers.csproj", "{41D18203-1688-43BD-A3AC-FD0C2BD81909}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTestsModel", "Tests\UnitTestsModel\UnitTestsModel.csproj", "{508D380F-145C-437E-A7DF-7A17C526B2F3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -115,6 +117,10 @@ Global
{41D18203-1688-43BD-A3AC-FD0C2BD81909}.Debug|Any CPU.Build.0 = Debug|Any CPU
{41D18203-1688-43BD-A3AC-FD0C2BD81909}.Release|Any CPU.ActiveCfg = Release|Any CPU
{41D18203-1688-43BD-A3AC-FD0C2BD81909}.Release|Any CPU.Build.0 = Release|Any CPU
{508D380F-145C-437E-A7DF-7A17C526B2F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{508D380F-145C-437E-A7DF-7A17C526B2F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{508D380F-145C-437E-A7DF-7A17C526B2F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{508D380F-145C-437E-A7DF-7A17C526B2F3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -127,6 +133,7 @@ Global
{E515C8B6-6282-4D8B-8523-7B3A13E4AF58} = {30FC2BE9-7397-445A-84AD-043CE70F4281}
{31FA8E5E-D642-4C43-A2B2-02B9832B2CEC} = {2B227C67-3BEC-4A83-BDA0-F3918FBC0D18}
{73EA27F2-9F0C-443F-A5EE-2960C983A422} = {2B227C67-3BEC-4A83-BDA0-F3918FBC0D18}
{508D380F-145C-437E-A7DF-7A17C526B2F3} = {2B227C67-3BEC-4A83-BDA0-F3918FBC0D18}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0F3487F4-66CA-4034-AC66-1BC899C9B523}

@ -32,7 +32,7 @@ public class UsersController : Controller
/// <summary>
/// Récupère une page d'utilisateurs en fonction des critères de pagination et de tri fournis.
/// </summary>
/// <param name="request">Les critères de pagination et de tri pour les utilisateurs.</param>
/// <param name="request">Les critères de pagination et de tri pour les utilisateurs. Met None par defaut et/ou si le critère n'est pas correct</param>
/// <returns>Une page de données utilisateur selon les critères spécifiés.</returns>
/// <response code="200">Retourne la page demandée d'utilisateurs.</response>
/// <response code="400">La demande de pagination est invalide.</response>

@ -3,13 +3,20 @@ namespace Shared;
public enum ActivityOrderCriteria
{
None,
ByIdActivity,
ByType,
ByDate,
ByDuration,
ByDistance,
ByElevation,
ByAverageSpeed,
ByAverageHeartRate,
ByCalories,
ByDescription
ByStartTime,
ByEndTime,
ByEffortFelt,
ByVariability,
ByVariance,
ByStandardDeviation,
ByAverage,
ByMaximum,
ByMinimum,
ByAverageTemperature,
ByHasAutoPause,
ByDataSourceId,
ByAthleteId
}

@ -0,0 +1,152 @@
using System;
using System.Collections.Generic;
using Model;
using Xunit;
namespace UnitTestsModel;
public class ActivityTests
{
[Fact]
public void Constructor_WithValidEffort_SetsEffort()
{
// Arrange
var date = DateTime.Now;
var validEffort = 3;
// Act
var activity = new Activity(
id: 1,
type: "Running",
date: date,
startTime: date.AddHours(1),
endTime: date.AddHours(2),
effort: validEffort,
variability: 0.5f,
variance: 0.3f,
standardDeviation: 0.2f,
average: 150,
maximum: 180,
minimum: 120,
averageTemperature: 25.5f,
hasAutoPause: false,
user: new User(),
dataSource: new DataSource(1, "Type", "Model", 0.1f, new List<User>(), new List<Activity>()),
heartRates: null
);
// Assert
Assert.Equal(validEffort, activity.Effort);
}
[Fact]
public void Constructor_WithInvalidEffort_ThrowsArgumentException()
{
// Arrange
var date = DateTime.Now;
var invalidEffort = 6;
// Act & Assert
Assert.Throws<ArgumentException>(() => new Activity(
id: 1,
type: "Running",
date: date,
startTime: date.AddHours(1),
endTime: date.AddHours(2),
effort: invalidEffort,
variability: 0.5f,
variance: 0.3f,
standardDeviation: 0.2f,
average: 150,
maximum: 180,
minimum: 120,
averageTemperature: 25.5f,
hasAutoPause: false,
user: new User(),
dataSource: new DataSource(1, "Type", "Model", 0.1f, new List<User>(), new List<Activity>()),
heartRates: null
));
}
[Fact]
public void ToString_ReturnsExpectedString()
{
// Arrange
var date = new DateTime(2023, 3, 16, 10, 0, 0);
var activity = new Activity(
id: 1,
type: "Running",
date: date,
startTime: date.AddHours(1),
endTime: date.AddHours(2),
effort: 3,
variability: 0.5f,
variance: 0.3f,
standardDeviation: 0.2f,
average: 150,
maximum: 180,
minimum: 120,
averageTemperature: 25.5f,
hasAutoPause: false,
user: new User(),
dataSource: new DataSource(1, "Type", "Model", 0.1f, new List<User>(), new List<Activity>()),
heartRates: null
);
// Act
var result = activity.ToString();
// Assert
Assert.Contains("Activity #1: Running on 16/3/2023 from 11:00:00 to 12:00:00", result);
}
[Fact]
public void Constructor_SetsPropertiesCorrectly()
{
// Arrange
var date = DateTime.Now;
var user = new User();
var dataSource = new DataSource(1, "Type", "Model", 0.1f, new List<User>(), new List<Activity>());
var heartRates = new List<HeartRate>();
// Act
var activity = new Activity(
id: 1,
type: "Running",
date: date,
startTime: date.AddHours(1),
endTime: date.AddHours(2),
effort: 3,
variability: 0.5f,
variance: 0.3f,
standardDeviation: 0.2f,
average: 150,
maximum: 180,
minimum: 120,
averageTemperature: 25.5f,
hasAutoPause: false,
user: user,
dataSource: dataSource,
heartRates: heartRates
);
// Assert
Assert.Equal(1, activity.Id);
Assert.Equal("Running", activity.Type);
Assert.Equal(date, activity.Date);
Assert.Equal(date.AddHours(1), activity.StartTime);
Assert.Equal(date.AddHours(2), activity.EndTime);
Assert.Equal(3, activity.Effort);
Assert.Equal(0.5f, activity.Variability);
Assert.Equal(0.3f, activity.Variance);
Assert.Equal(0.2f, activity.StandardDeviation);
Assert.Equal(150, activity.Average);
Assert.Equal(180, activity.Maximum);
Assert.Equal(120, activity.Minimum);
Assert.Equal(25.5f, activity.AverageTemperature);
Assert.False(activity.HasAutoPause);
Assert.Equal(user, activity.Athlete);
Assert.Equal(dataSource, activity.DataSource);
Assert.Equal(heartRates, activity.HeartRates);
}
}

@ -0,0 +1,10 @@
namespace UnitTestsModel;
public class UnitTest1
{
[Fact]
public void Test1()
{
}
}

@ -1,23 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.0" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="xunit" Version="2.5.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
</ItemGroup>
<ItemGroup>
<Using Include="Xunit" />
</ItemGroup>
</Project>
<ProjectReference Include="..\..\Model\Model.csproj" />
</ItemGroup>
</Project>

@ -1,11 +0,0 @@
namespace UnitTestsEntities2
{
public class UnitTest1
{
[Fact]
public void Test1()
{
}
}
}
Loading…
Cancel
Save