From 7677c3c03cd3175f9734eea2afef049710248925 Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Wed, 18 Nov 2020 14:24:13 +0100 Subject: [PATCH] Add test for IResettingEntitySystem resetting (#2442) * Add test for IResettingEntitySystem resetting * Fix test since a round start also resets systems --- .../Tests/ResettingEntitySystemTests.cs | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 Content.IntegrationTests/Tests/ResettingEntitySystemTests.cs diff --git a/Content.IntegrationTests/Tests/ResettingEntitySystemTests.cs b/Content.IntegrationTests/Tests/ResettingEntitySystemTests.cs new file mode 100644 index 0000000000..01dd1a4127 --- /dev/null +++ b/Content.IntegrationTests/Tests/ResettingEntitySystemTests.cs @@ -0,0 +1,58 @@ +using System.Threading.Tasks; +using Content.Server.GameTicking; +using Content.Server.Interfaces.GameTicking; +using Content.Shared.GameTicking; +using NUnit.Framework; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.IoC; + +namespace Content.IntegrationTests.Tests +{ + [TestFixture] + [TestOf(typeof(IResettingEntitySystem))] + public class ResettingEntitySystemTests : ContentIntegrationTest + { + private class TestResettingEntitySystem : EntitySystem, IResettingEntitySystem + { + public bool HasBeenReset { get; set; } + + public void Reset() + { + HasBeenReset = true; + } + } + + [Test] + public async Task ResettingEntitySystemResetTest() + { + var server = StartServer(new ServerContentIntegrationOption + { + ContentBeforeIoC = () => + { + IoCManager.Resolve().LoadExtraSystemType(); + } + }); + + await server.WaitIdleAsync(); + + var gameTicker = server.ResolveDependency(); + var entitySystemManager = server.ResolveDependency(); + + await server.WaitAssertion(() => + { + Assert.That(gameTicker.RunLevel, Is.EqualTo(GameRunLevel.InRound)); + + var system = entitySystemManager.GetEntitySystem(); + + system.HasBeenReset = false; + + Assert.False(system.HasBeenReset); + + gameTicker.RestartRound(); + + Assert.True(system.HasBeenReset); + }); + } + } +}