Fix up ExploreService APIs and add unit tests

This commit is contained in:
BillyCool
2026-04-22 01:57:48 +10:00
parent 235688520f
commit c696810e83
12 changed files with 705 additions and 126 deletions

View File

@@ -0,0 +1,42 @@
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);
}
}