Files
MariesWonderland/tests/Helpers/StaminaHelperTests.cs
2026-04-22 01:58:55 +10:00

43 lines
1.2 KiB
C#

using MariesWonderland.Data;
using MariesWonderland.Helpers;
using MariesWonderland.Models.Entities;
namespace MariesWonderland.Tests.Helpers;
public class StaminaHelperTests
{
private static GameConfig ConfigWithCap(int cap) => new() { StaminaMaxCount = cap };
[Fact]
public void AddStamina_BelowCap_AddsFullAmount()
{
var status = new EntityIUserStatus { StaminaMilliValue = 0 };
StaminaHelper.AddStamina(status, 50, ConfigWithCap(999), nowMs: 1000L);
Assert.Equal(50_000, status.StaminaMilliValue);
Assert.Equal(1000L, status.StaminaUpdateDatetime);
}
[Fact]
public void AddStamina_ExceedsCap_ClampsToMax()
{
// Start near cap (990 stamina), add 50 → should clamp to 999
var status = new EntityIUserStatus { StaminaMilliValue = 990_000 };
StaminaHelper.AddStamina(status, 50, ConfigWithCap(999), nowMs: 2000L);
Assert.Equal(999_000, status.StaminaMilliValue);
}
[Fact]
public void AddStamina_AlreadyAtCap_DoesNotExceed()
{
var status = new EntityIUserStatus { StaminaMilliValue = 999_000 };
StaminaHelper.AddStamina(status, 50, ConfigWithCap(999), nowMs: 3000L);
Assert.Equal(999_000, status.StaminaMilliValue);
}
}