Files
RobustToolbox/Robust.UnitTesting/Server/GameObjects/ThrowingEntityDeletion_Test.cs
Leon FriedrichandGitHub d5c4981648 Partial MapManager refactor (#5042)
* MapManager rejig

* Update Tests

* A
2024-04-18 14:05:02 +10:00

57 lines
1.8 KiB
C#

using System.Linq;
using NUnit.Framework;
using Robust.Shared.GameObjects;
using Robust.Shared.Map;
namespace Robust.UnitTesting.Server.GameObjects
{
[TestFixture]
public sealed class ThrowingEntityDeletion_Test
{
private ISimulation _sim = default!;
const string PROTOTYPES = @"
- type: entity
id: throwInAdd
components:
- type: DebugExceptionOnAdd
- type: entity
id: throwsInInitialize
components:
- type: DebugExceptionInitialize
- type: entity
id: throwsInStartup
components:
- type: DebugExceptionStartup
";
[OneTimeSetUp]
public void Setup()
{
_sim = RobustServerSimulation.NewSimulation()
.RegisterComponents(f =>
{
f.RegisterClass<DebugExceptionOnAddComponent>();
f.RegisterClass<DebugExceptionInitializeComponent>();
f.RegisterClass<DebugExceptionStartupComponent>();
})
.RegisterEntitySystems(f => f.LoadExtraSystemType<DebugExceptionSystem>())
.RegisterPrototypes(protoMan => protoMan.LoadString(PROTOTYPES))
.InitializeInstance();
}
[TestCase("throwInAdd")]
[TestCase("throwsInInitialize")]
[TestCase("throwsInStartup")]
public void Test(string prototypeName)
{
var entMan = _sim.Resolve<IEntityManager>();
_sim.Resolve<IEntityManager>().System<SharedMapSystem>().CreateMap(out var map);
Assert.That(() => entMan.SpawnEntity(prototypeName, new MapCoordinates(0, 0, map)),
Throws.TypeOf<EntityCreationException>());
Assert.That(entMan.GetEntities().Where(p => entMan.GetComponent<MetaDataComponent>(p).EntityPrototype?.ID == prototypeName), Is.Empty);
}
}
}