fix: FASS2 状态机与 UDP 枢纽审查项
等锁超时、全路径签名、无锁窗口不下发、Fault 终态可等待、Pass+机构不再短路、Alarm 不杀单、catch-up 停在未完成站;VehicleCode=0/重复车号拒绝注册,Hub 已运行时不抢监听口;FileLogger 空目录可写。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
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));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user