using NUnit.Framework; using Robust.Shared.GameObjects; using Robust.Shared.Map; using Robust.UnitTesting; namespace Robust.Shared.IntegrationTests.GameObjects; public sealed partial class EntityQueryTests : RobustIntegrationTest { [Test] public async Task TestEntityQueryForEach() { var server = StartServer(); await server.WaitIdleAsync(); await server.WaitPost(() => { var sEntManager = server.ResolveDependency(); for (var i = 0; i < 5; i++) { var ent = sEntManager.Spawn(null, MapCoordinates.Nullspace); sEntManager.EnsureComponent(ent); } for (var i = 0; i < 10; i++) { var ent = sEntManager.Spawn(null, MapCoordinates.Nullspace); sEntManager.EnsureComponent(ent); } }); await server.WaitAssertion(() => { var sEntManager = server.ResolveDependency(); var a = new List>(); foreach (var ent in sEntManager.EntityQueryEnumerator()) { Assert.That(a, Does.Not.Contain(ent)); a.Add(ent); } Assert.That(a, Has.Count.EqualTo(5)); var b = new List>(); foreach (var ent in sEntManager.EntityQueryEnumerator()) { Assert.That(b, Does.Not.Contain(ent)); b.Add(ent); } Assert.That(b, Has.Count.EqualTo(10)); var c = new List>(); foreach (var ent in sEntManager.EntityQueryEnumerator()) { c.Add(ent); } Assert.That(c, Is.Empty); }); } [RegisterComponent] public sealed partial class EntityQueryTestsAComponent : Component; [RegisterComponent] public sealed partial class EntityQueryTestsBComponent : Component; }