🧪 Add failing model tests
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
2324a9657a
commit
9142dc8cef
@ -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 @@
|
||||
global using Xunit;
|
@ -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…
Reference in new issue