mirror of
https://github.com/BillyCool/MariesWonderland.git
synced 2026-05-06 12:53:38 +02:00
43 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|