mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-15 03:30:53 +01:00
Robust.UnitTesting was both ALL tests for RT, and also API surface for content tests. Tests are now split into separate projects as appropriate, and the API side has also been split off.
56 lines
2.1 KiB
C#
56 lines
2.1 KiB
C#
using System.Threading.Tasks;
|
|
using NUnit.Framework;
|
|
using Robust.Shared.GameObjects;
|
|
|
|
namespace Robust.UnitTesting.Shared.Spawning;
|
|
|
|
[TestFixture]
|
|
internal sealed class TrySpawnNextToTest : EntitySpawnHelpersTest
|
|
{
|
|
[Test]
|
|
public async Task Test()
|
|
{
|
|
await Setup();
|
|
|
|
// Spawning next to an entity in a container will insert the entity into the container.
|
|
await Server.WaitPost(() =>
|
|
{
|
|
Assert.That(EntMan.TrySpawnNextTo(null, ChildA, out var uid));
|
|
Assert.That(EntMan.EntityExists(uid));
|
|
Assert.That(Xforms.GetParentUid(uid!.Value), Is.EqualTo(Parent));
|
|
Assert.That(Container.IsEntityInContainer(uid.Value));
|
|
Assert.That(Container.GetContainer(Parent, "childA").Contains(uid.Value));
|
|
});
|
|
|
|
// The container is now full, spawning will fail.
|
|
await Server.WaitPost(() =>
|
|
{
|
|
int count = EntMan.EntityCount;
|
|
Assert.That(EntMan.TrySpawnNextTo(null, ChildA, out var uid), Is.False);
|
|
Assert.That(EntMan.EntityCount, Is.EqualTo(count));
|
|
Assert.That(EntMan.EntityExists(uid), Is.False);
|
|
});
|
|
|
|
// Spawning next to an entity that is not in a container will drop it
|
|
await Server.WaitPost(() =>
|
|
{
|
|
Assert.That(EntMan.TrySpawnNextTo(null, GrandChildB, out var uid));
|
|
Assert.That(EntMan.EntityExists(uid));
|
|
Assert.That(Xforms.GetParentUid(uid!.Value), Is.EqualTo(Parent));
|
|
Assert.That(Container.IsEntityInContainer(uid.Value));
|
|
Assert.That(Container.IsEntityOrParentInContainer(uid.Value));
|
|
});
|
|
|
|
// Spawning "next to" a nullspace entity will fail.
|
|
await Server.WaitPost(() =>
|
|
{
|
|
int count = EntMan.EntityCount;
|
|
Assert.That(EntMan.TrySpawnNextTo(null, Map, out var uid), Is.False);
|
|
Assert.That(EntMan.EntityCount, Is.EqualTo(count));
|
|
Assert.That(EntMan.EntityExists(uid), Is.False);
|
|
});
|
|
|
|
await Server.WaitPost(() => MapSys.DeleteMap(MapId));
|
|
}
|
|
}
|