From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Date: Wed, 31 Jul 2024 11:31:41 +0000 (+1000)
Subject: Add test for anchored prototypes (#30526)
X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=778bfe3355044835e7ee993c00a26cc456673522;p=space-station-14.git
Add test for anchored prototypes (#30526)
Nothing fails at least but at some point will let us remove some hacky engine code.
---
diff --git a/Content.IntegrationTests/Tests/Physics/AnchorPrototypeTest.cs b/Content.IntegrationTests/Tests/Physics/AnchorPrototypeTest.cs
new file mode 100644
index 0000000000..a65e7d1fd6
--- /dev/null
+++ b/Content.IntegrationTests/Tests/Physics/AnchorPrototypeTest.cs
@@ -0,0 +1,43 @@
+using Robust.Shared.GameObjects;
+using Robust.Shared.Physics;
+using Robust.Shared.Physics.Components;
+using Robust.Shared.Prototypes;
+
+namespace Content.IntegrationTests.Tests.Physics;
+
+[TestFixture]
+public sealed class AnchorPrototypeTest
+{
+ ///
+ /// Asserts that entityprototypes marked as anchored are also static physics bodies.
+ ///
+ [Test]
+ public async Task TestStaticAnchorPrototypes()
+ {
+ await using var pair = await PoolManager.GetServerClient();
+
+ var protoManager = pair.Server.ResolveDependency();
+
+ await pair.Server.WaitAssertion(() =>
+ {
+ foreach (var ent in protoManager.EnumeratePrototypes())
+ {
+ if (!ent.Components.TryGetComponent("Transform", out var xformComp) ||
+ !ent.Components.TryGetComponent("Physics", out var physicsComp))
+ {
+ continue;
+ }
+
+ var xform = (TransformComponent)xformComp;
+ var physics = (PhysicsComponent)physicsComp;
+
+ if (!xform.Anchored)
+ continue;
+
+ Assert.That(physics.BodyType, Is.EqualTo(BodyType.Static), $"Found entity prototype {ent} marked as anchored but not static for physics.");
+ }
+ });
+
+ await pair.CleanReturnAsync();
+ }
+}