You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
API/src/Tests/UnitTestsModel/HeartRateTest.cs

120 lines
4.6 KiB

using Xunit;
using System;
namespace Model.Tests
{
public class HeartRateTests
{
[Fact]
public void HeartRate_Constructor_WithValidParameters()
{
int id = 1;
int bpm = 80;
TimeOnly timestamp = new TimeOnly(12, 30, 0);
Activity activity = new Activity();
double? latitude = 40.7128;
double? longitude = -74.0060;
double? altitude = 10.5;
int? cadence = 120;
double? distance = 5.2;
double? speed = 10.5;
int? power = 200;
double? temperature = 25.5;
var heartRate = new HeartRate(id, bpm, timestamp, activity, latitude, longitude, altitude, cadence, distance, speed, power, temperature);
Assert.Equal(id, heartRate.Id);
Assert.Equal(bpm, heartRate.Bpm);
Assert.Equal(timestamp, heartRate.Timestamp);
Assert.Equal(activity, heartRate.Activity);
Assert.Equal(latitude, heartRate.Latitude);
Assert.Equal(longitude, heartRate.Longitude);
Assert.Equal(altitude, heartRate.Altitude);
Assert.Equal(cadence, heartRate.Cadence);
Assert.Equal(distance, heartRate.Distance);
Assert.Equal(speed, heartRate.Speed);
Assert.Equal(power, heartRate.Power);
Assert.Equal(temperature, heartRate.Temperature);
}
[Fact]
public void HeartRate_ToString_ReturnsExpectedString()
{
int id = 1;
int bpm = 80;
TimeOnly timestamp = new TimeOnly(12, 30, 0);
Activity activity = new Activity();
double? latitude = 40.7128;
double? longitude = -74.0060;
double? altitude = 10.5;
int? cadence = 120;
double? distance = 5.2;
double? speed = 10.5;
int? power = 200;
double? temperature = 25.5;
var heartRate = new HeartRate(id, bpm, timestamp, activity, latitude, longitude, altitude, cadence, distance, speed, power, temperature);
var result = heartRate.ToString();
Assert.Contains($"HeartRate #{id}", result);
Assert.Contains($"{bpm} bpm", result);
Assert.Contains($"{timestamp:HH:mm:ss}", result);
Assert.Contains($"temperature of {temperature}°C", result);
Assert.Contains($"altitude of {altitude}m", result);
Assert.Contains($"at {longitude}°E and {latitude}°N", result);
}
[Fact]
public void Constructor_WithAllParameters_ShouldInitializeCorrectly()
{
int bpm = 70;
var timestamp = new TimeOnly(12, 0);
var activity = new Activity();
double? latitude = 40.7128;
double? longitude = -74.0060;
double? altitude = 10.0;
int? cadence = 80;
double? distance = 5.0;
double? speed = 10.0;
int? power = 200;
double? temperature = 20.0;
var heartRate = new HeartRate(bpm, timestamp, activity, latitude, longitude, altitude, cadence, distance, speed, power, temperature);
Assert.NotNull(heartRate);
Assert.Equal(bpm, heartRate.Bpm);
Assert.Equal(timestamp, heartRate.Timestamp);
Assert.Equal(activity, heartRate.Activity);
Assert.Equal(latitude, heartRate.Latitude);
Assert.Equal(longitude, heartRate.Longitude);
Assert.Equal(altitude, heartRate.Altitude);
Assert.Equal(cadence, heartRate.Cadence);
Assert.Equal(distance, heartRate.Distance);
Assert.Equal(speed, heartRate.Speed);
Assert.Equal(power, heartRate.Power);
Assert.Equal(temperature, heartRate.Temperature);
}
[Fact]
public void Constructor_WithMinimalParameters_ShouldInitializeCorrectly()
{
int bpm = 70;
var timestamp = new TimeOnly(12, 0);
var heartRate = new HeartRate(bpm, timestamp, 1, null, null, null, null, null, null, null, null);
Assert.NotNull(heartRate);
Assert.Equal(bpm, heartRate.Bpm);
Assert.Equal(timestamp, heartRate.Timestamp);
Assert.Null(heartRate.Activity);
Assert.Null(heartRate.Latitude);
Assert.Null(heartRate.Longitude);
Assert.Null(heartRate.Altitude);
Assert.Null(heartRate.Cadence);
Assert.Null(heartRate.Distance);
Assert.Null(heartRate.Speed);
Assert.Null(heartRate.Power);
Assert.Null(heartRate.Temperature);
}
}
}