Files
9adb10d791 GameTest part 1 (#43182)
* Ports much of GameTest, minus all the WIP stuff.

* remark.

* EnsureCVar now adds test properties.

* Some cleanup and functionality.

* Ignore broken test. Needs fixed eventually. Also explicit context config.

* TrackingIssue attribute.

* oops

* Pair config attribute.

* Remove SystemAttribute in favor of using the EntitySystemManager dependency collection.

* Ensure idleness.

* More tests for tests.

* More specific failure catching tests.

* Reverse attribute resolution order so suite-wide attributes happen first.

* Get rid of AffectedProperties again because I need to refactor PoolSettings for that.

* Poke

* Final cleanup pass.

* Update Content.IntegrationTests/Fixtures/Attributes/RunOnSideAttribute.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.IntegrationTests/Fixtures/Attributes/Side.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.IntegrationTests/NUnit/Utilities/ITestExtensions.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Fixes.

* shut up nunit.

* Make TrackingIssue a bit strict on purpose, so people don't put junk here.

* Update Content.IntegrationTests/Tests/GameTestTests/DisconnectedDependencyTest.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Address.

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2026-03-27 19:08:47 +00:00

54 lines
2.1 KiB
C#

#nullable enable
using System.Linq;
using Content.IntegrationTests.Fixtures;
using Content.IntegrationTests.Fixtures.Attributes;
using Robust.Shared.Configuration;
namespace Content.IntegrationTests.Tests.GameTestTests;
[TestOf(typeof(GameTest))]
[TestOf(typeof(EnsureCVarAttribute))]
[Description("Ensures EnsureCVar actually sets CVars as expected.")]
[EnsureCVar(Side.Server, typeof(EnsureCVarsTestCVars), nameof(EnsureCVarsTestCVars.Foo), true)]
public sealed class EnsureCVarTest : GameTest
{
[SidedDependency(Side.Server)] private readonly IConfigurationManager _sCfg = default!;
[SidedDependency(Side.Client)] private readonly IConfigurationManager _cCfg = default!;
[Test]
[Description("Ensure Foo is set and Bar is not.")]
public void FooIsSet()
{
using (Assert.EnterMultipleScope())
{
Assert.That(_sCfg.GetCVar(EnsureCVarsTestCVars.Foo), Is.True);
Assert.That(_cCfg.GetCVar(EnsureCVarsTestCVars.Foo),
Is.EqualTo(EnsureCVarsTestCVars.Foo.DefaultValue),
"Foo is not replicated and should not be set on the client.");
Assert.That(_sCfg.GetCVar(EnsureCVarsTestCVars.Bar),
Is.EqualTo(EnsureCVarsTestCVars.Bar.DefaultValue));
}
}
[Test]
[EnsureCVar(Side.Server, typeof(EnsureCVarsTestCVars), nameof(EnsureCVarsTestCVars.Bar), 42)]
[Description("Ensure Foo and Bar are set.")]
public void BarIsSet()
{
var props = TestContext.CurrentContext.Test.Properties;
using (Assert.EnterMultipleScope())
{
Assert.That(_sCfg.GetCVar(EnsureCVarsTestCVars.Bar),
Is.EqualTo(42));
Assert.That(_cCfg.GetCVar(EnsureCVarsTestCVars.Bar),
Is.EqualTo(EnsureCVarsTestCVars.Bar.DefaultValue),
"Bar is not replicated and should not be set on the client.");
Assert.That(props[EnsureCVarAttribute.ServerEnsuredCVarsProperty].Count(),
Is.EqualTo(1),
"Expected EnsureCVar to appropriately mark its target test.");
}
}
}