| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- using Content.Server.GameTicking;
- using Content.Server.GameTicking.Commands;
- using Content.Shared.CCVar;
- using Robust.Shared.Configuration;
- using Robust.Shared.GameObjects;
- using Robust.Shared.IoC;
- using Robust.Shared.Timing;
- namespace Content.IntegrationTests.Tests.Commands
- {
- [TestFixture]
- [TestOf(typeof(RestartRoundNowCommand))]
- public sealed class RestartRoundNowTest
- {
- [Test]
- [TestCase(true)]
- [TestCase(false)]
- public async Task RestartRoundAfterStart(bool lobbyEnabled)
- {
- await using var pair = await PoolManager.GetServerClient(new PoolSettings
- {
- DummyTicker = false,
- Dirty = true
- });
- var server = pair.Server;
- var configManager = server.ResolveDependency<IConfigurationManager>();
- var entityManager = server.ResolveDependency<IEntityManager>();
- var gameTicker = entityManager.System<GameTicker>();
- await pair.RunTicksSync(5);
- GameTick tickBeforeRestart = default;
- await server.WaitAssertion(() =>
- {
- Assert.That(configManager.GetCVar(CCVars.GameLobbyEnabled), Is.EqualTo(false));
- configManager.SetCVar(CCVars.GameLobbyEnabled, lobbyEnabled);
- Assert.That(gameTicker.RunLevel, Is.EqualTo(GameRunLevel.InRound));
- tickBeforeRestart = entityManager.CurrentTick;
- gameTicker.RestartRound();
- if (lobbyEnabled)
- {
- Assert.That(gameTicker.RunLevel, Is.Not.EqualTo(GameRunLevel.InRound));
- }
- });
- await pair.RunTicksSync(15);
- await server.WaitAssertion(() =>
- {
- var tickAfterRestart = entityManager.CurrentTick;
- Assert.That(tickBeforeRestart, Is.LessThan(tickAfterRestart));
- });
- await pair.RunTicksSync(5);
- await pair.CleanReturnAsync();
- }
- }
- }
|