Files
StandardSence/StandardScene.Magnetic.Tests/Tasking/Fass2ActionResolverTests.cs
T
黄兆尉andCursor e4a245e644 fix: FASS2 状态机与 UDP 枢纽审查项
等锁超时、全路径签名、无锁窗口不下发、Fault 终态可等待、Pass+机构不再短路、Alarm 不杀单、catch-up 停在未完成站;VehicleCode=0/重复车号拒绝注册,Hub 已运行时不抢监听口;FileLogger 空目录可写。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-26 23:04:58 +08:00

48 lines
1.4 KiB
C#

using StandardScene.Magnetic.Protocol;
using StandardScene.Magnetic.Tasking;
using Xunit;
namespace StandardScene.Magnetic.Tests.Tasking
{
public class Fass2ActionResolverTests
{
[Fact]
public void PassWithLift_IsNotCompleteUntilMechanismMatches()
{
var expected = new Fass2NodeMessage
{
Node = 3,
StartStop = Fass2TaskBuilder.StartStopPass,
Lift = 1
};
var actual = new Fass2NodeMessage
{
Node = 3,
StartStop = Fass2TaskBuilder.StartStopPass,
Lift = 0
};
Assert.True(Fass2ActionResolver.RequiresActionWait(expected));
Assert.False(Fass2ActionResolver.IsStationActionComplete(expected, actual, vehicleState: 2));
}
[Fact]
public void PlainPass_CompletesWithoutMechanism()
{
var expected = new Fass2NodeMessage
{
Node = 3,
StartStop = Fass2TaskBuilder.StartStopPass
};
var actual = new Fass2NodeMessage
{
Node = 3,
StartStop = Fass2TaskBuilder.StartStopPass
};
Assert.False(Fass2ActionResolver.RequiresActionWait(expected));
Assert.True(Fass2ActionResolver.IsStationActionComplete(expected, actual, vehicleState: 2));
}
}
}