acdream/tests/AcDream.App.Tests/Physics/C3cF1ProductionWiringTests.cs

36 lines
1.5 KiB
C#

using AcDream.App.Tests.Architecture;
using AcDream.App.Physics;
using AcDream.Runtime.Gameplay;
namespace AcDream.App.Tests.Physics;
/// <summary>
/// C3c-F1 (2026-08-02): compiled architecture checks for the App-side halves
/// of the movement-owner application seams whose production graphs have no
/// focused harness (the inbound network-update controller's dependency
/// set is composition-only). The Runtime lifecycle matrices carry the
/// behavioral coverage; these checks keep the App wiring routed through the
/// owner's typed entries instead of the throwing direct mutations that
/// crashed the connected lifecycle gate twice
/// (logs/connected-world-gate-20260802-122749 — SetCharacterSkills;
/// logs/connected-world-gate-20260802-125907 — ApplyPhysicsState).
/// </summary>
public sealed class C3cF1ProductionWiringTests
{
[Fact]
public void LocalPlayerInboundSetState_RoutesThroughTheTypedOwnerEntry()
{
IReadOnlyList<CompiledCall> calls = CompiledCallGraph.ReadDeclared(
typeof(LiveEntityNetworkUpdateController));
Assert.Single(
calls,
call =>
call.Target.DeclaringType == typeof(PlayerMovementController)
&& call.Target.Name == "ApplyServerPhysicsState");
Assert.DoesNotContain(
calls,
call => call.Target.DeclaringType == typeof(PlayerMovementController)
&& call.Target.Name == nameof(PlayerMovementController.ApplyPhysicsState));
}
}