mirror of
https://github.com/ppy/osu.git
synced 2025-02-14 00:03:21 +08:00
Add failing test for the global ruleset being set to an invalid value
This commit is contained in:
parent
488dd3ea52
commit
04c8ea2813
@ -10,6 +10,7 @@ using osu.Framework.Graphics;
|
|||||||
using osu.Framework.Graphics.Shapes;
|
using osu.Framework.Graphics.Shapes;
|
||||||
using osu.Framework.Graphics.Textures;
|
using osu.Framework.Graphics.Textures;
|
||||||
using osu.Framework.Platform;
|
using osu.Framework.Platform;
|
||||||
|
using osu.Framework.Testing;
|
||||||
using osu.Game.Audio;
|
using osu.Game.Audio;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Configuration;
|
using osu.Game.Configuration;
|
||||||
@ -32,6 +33,7 @@ using osuTK.Graphics;
|
|||||||
namespace osu.Game.Tests.Visual
|
namespace osu.Game.Tests.Visual
|
||||||
{
|
{
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
|
[HeadlessTest]
|
||||||
public class TestSceneOsuGame : OsuTestScene
|
public class TestSceneOsuGame : OsuTestScene
|
||||||
{
|
{
|
||||||
private IReadOnlyList<Type> requiredGameDependencies => new[]
|
private IReadOnlyList<Type> requiredGameDependencies => new[]
|
||||||
@ -83,10 +85,15 @@ namespace osu.Game.Tests.Visual
|
|||||||
typeof(PreviewTrackManager),
|
typeof(PreviewTrackManager),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private OsuGame game;
|
||||||
|
|
||||||
|
[Resolved]
|
||||||
|
private OsuGameBase gameBase { get; set; }
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
[BackgroundDependencyLoader]
|
||||||
private void load(GameHost host, OsuGameBase gameBase)
|
private void load(GameHost host)
|
||||||
{
|
{
|
||||||
OsuGame game = new OsuGame();
|
game = new OsuGame();
|
||||||
game.SetHost(host);
|
game.SetHost(host);
|
||||||
|
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
@ -100,7 +107,39 @@ namespace osu.Game.Tests.Visual
|
|||||||
};
|
};
|
||||||
|
|
||||||
AddUntilStep("wait for load", () => game.IsLoaded);
|
AddUntilStep("wait for load", () => game.IsLoaded);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestNullRulesetHandled()
|
||||||
|
{
|
||||||
|
RulesetInfo ruleset = null;
|
||||||
|
|
||||||
|
AddStep("store current ruleset", () => ruleset = Ruleset.Value);
|
||||||
|
AddStep("set global ruleset to null value", () => Ruleset.Value = null);
|
||||||
|
|
||||||
|
AddAssert("ruleset still valid", () => Ruleset.Value.Available);
|
||||||
|
AddAssert("ruleset unchanged", () => ReferenceEquals(Ruleset.Value, ruleset));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestUnavailableRulesetHandled()
|
||||||
|
{
|
||||||
|
RulesetInfo ruleset = null;
|
||||||
|
|
||||||
|
AddStep("store current ruleset", () => ruleset = Ruleset.Value);
|
||||||
|
AddStep("set global ruleset to invalid value", () => Ruleset.Value = new RulesetInfo
|
||||||
|
{
|
||||||
|
Name = "unavailable",
|
||||||
|
Available = false,
|
||||||
|
});
|
||||||
|
|
||||||
|
AddAssert("ruleset still valid", () => Ruleset.Value.Available);
|
||||||
|
AddAssert("ruleset unchanged", () => ReferenceEquals(Ruleset.Value, ruleset));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestAvailableDependencies()
|
||||||
|
{
|
||||||
AddAssert("check OsuGame DI members", () =>
|
AddAssert("check OsuGame DI members", () =>
|
||||||
{
|
{
|
||||||
foreach (var type in requiredGameDependencies)
|
foreach (var type in requiredGameDependencies)
|
||||||
@ -111,6 +150,7 @@ namespace osu.Game.Tests.Visual
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
AddAssert("check OsuGameBase DI members", () =>
|
AddAssert("check OsuGameBase DI members", () =>
|
||||||
{
|
{
|
||||||
foreach (var type in requiredGameBaseDependencies)
|
foreach (var type in requiredGameBaseDependencies)
|
||||||
|
Loading…
Reference in New Issue
Block a user