fix(battle-node): clip SIO ack arg instead of checked-cast throwing on overflow

This commit is contained in:
gamer147
2026-06-01 11:13:24 -04:00
parent 453865ade2
commit 4dd61343aa
2 changed files with 71 additions and 2 deletions

View File

@@ -0,0 +1,44 @@
using Microsoft.Extensions.Logging.Abstractions;
using NUnit.Framework;
using SVSim.BattleNode.Sessions;
namespace SVSim.UnitTests.BattleNode.Sessions;
[TestFixture]
public class ClipAckArgTests
{
[Test]
public void InRange_ReturnsArgUnchanged()
{
var result = BattleSession.ClipAckArg(42L, NullLogger.Instance, battleId: "b");
Assert.That(result, Is.EqualTo(42));
}
[Test]
public void AboveIntMax_ClipsToIntMaxValue()
{
var result = BattleSession.ClipAckArg((long)int.MaxValue + 1L, NullLogger.Instance, battleId: "b");
Assert.That(result, Is.EqualTo(int.MaxValue));
}
[Test]
public void BelowIntMin_ClipsToIntMinValue()
{
var result = BattleSession.ClipAckArg((long)int.MinValue - 1L, NullLogger.Instance, battleId: "b");
Assert.That(result, Is.EqualTo(int.MinValue));
}
[Test]
public void AtIntMaxBoundary_ReturnsIntMaxValue()
{
var result = BattleSession.ClipAckArg((long)int.MaxValue, NullLogger.Instance, battleId: "b");
Assert.That(result, Is.EqualTo(int.MaxValue));
}
[Test]
public void AtIntMinBoundary_ReturnsIntMinValue()
{
var result = BattleSession.ClipAckArg((long)int.MinValue, NullLogger.Instance, battleId: "b");
Assert.That(result, Is.EqualTo(int.MinValue));
}
}