acdream/tests/AcDream.Core.Tests/Physics/RetailObjectManagerTailTests.cs
Erik c5ab99081c fix(motion): restore retail object manager order
Process animation completion at the retail process_hooks boundary, then run targeting, movement, PartArray completion, and PositionManager in the named UpdateObjectInternal order for local, remote, hidden, and position-less animated objects. Retire TS-42 with deterministic conformance coverage.\n\nCo-authored-by: OpenAI Codex <codex@openai.com>
2026-07-19 21:40:14 +02:00

38 lines
1.1 KiB
C#

using AcDream.Core.Physics;
namespace AcDream.Core.Tests.Physics;
public sealed class RetailObjectManagerTailTests
{
[Fact]
public void Run_UsesNamedRetailManagerOrder()
{
var calls = new List<string>();
RetailObjectManagerTail.Run(
checkDetection: () => calls.Add("detection"),
handleTargeting: () => calls.Add("target"),
movementUseTime: () => calls.Add("movement"),
partArrayHandleMovement: () => calls.Add("part-array"),
positionUseTime: () => calls.Add("position"));
Assert.Equal(
["detection", "target", "movement", "part-array", "position"],
calls);
}
[Fact]
public void Run_SkipsMissingManagersWithoutDuplicatingNeighbours()
{
var calls = new List<string>();
RetailObjectManagerTail.Run(
checkDetection: null,
handleTargeting: () => calls.Add("target"),
movementUseTime: null,
partArrayHandleMovement: () => calls.Add("part-array"),
positionUseTime: null);
Assert.Equal(["target", "part-array"], calls);
}
}