From 3ff05b7330ef50dcf9041cd35f69229f6b340d0e Mon Sep 17 00:00:00 2001 From: Dan Balasescu Date: Tue, 25 Mar 2025 16:19:35 +0900 Subject: [PATCH] Add tests --- .../TestSceneMultiplayerUserModDisplay.cs | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerUserModDisplay.cs diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerUserModDisplay.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerUserModDisplay.cs new file mode 100644 index 0000000000..02b97c6dd6 --- /dev/null +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerUserModDisplay.cs @@ -0,0 +1,47 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using System.Linq; +using NUnit.Framework; +using osu.Framework.Extensions; +using osu.Framework.Graphics; +using osu.Framework.Testing; +using osu.Game.Online.API; +using osu.Game.Rulesets.Osu.Mods; +using osu.Game.Rulesets.UI; +using osu.Game.Screens.OnlinePlay.Multiplayer; + +namespace osu.Game.Tests.Visual.Multiplayer +{ + public partial class TestSceneMultiplayerUserModDisplay : MultiplayerTestScene + { + private MultiplayerUserModDisplay modDisplay = null!; + + public override void SetUpSteps() + { + base.SetUpSteps(); + + AddStep("join room", () => JoinRoom(CreateDefaultRoom())); + WaitForJoined(); + + AddStep("add display", () => Child = modDisplay = new MultiplayerUserModDisplay + { + Anchor = Anchor.Centre, + Origin = Anchor.Centre + }); + } + + [Test] + public void TestChangeMods() + { + AddStep("set DT", () => MultiplayerClient.ChangeUserMods([new OsuModDoubleTime()]).WaitSafely()); + AddUntilStep("mod displayed", () => modDisplay.ChildrenOfType().Count() == 1); + + AddStep("set DT, HR", () => MultiplayerClient.ChangeUserMods([new OsuModDoubleTime(), new OsuModHardRock()]).WaitSafely()); + AddUntilStep("mods displayed", () => modDisplay.ChildrenOfType().Count() == 2); + + AddStep("set no mods", () => MultiplayerClient.ChangeUserMods(Enumerable.Empty()).WaitSafely()); + AddUntilStep("no mods displayed", () => !modDisplay.ChildrenOfType().Any()); + } + } +}