From fea50ee432e79ac7f5f697acda404bc0781b70e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Fri, 23 May 2025 10:28:36 +0200 Subject: [PATCH] Add extra test coverage for multiplayer participants list in team versus --- .../TestSceneMultiplayerParticipantsList.cs | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerParticipantsList.cs b/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerParticipantsList.cs index 0014d8b88d..50c4c3439b 100644 --- a/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerParticipantsList.cs +++ b/osu.Game.Tests/Visual/Multiplayer/TestSceneMultiplayerParticipantsList.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; +using System.Threading; using NUnit.Framework; using osu.Framework.Extensions.ObjectExtensions; using osu.Framework.Graphics; @@ -15,6 +16,7 @@ using osu.Game.Online; using osu.Game.Online.API; using osu.Game.Online.API.Requests.Responses; using osu.Game.Online.Multiplayer; +using osu.Game.Online.Multiplayer.MatchTypes.TeamVersus; using osu.Game.Online.Rooms; using osu.Game.Rulesets.Catch.Mods; using osu.Game.Rulesets.Mods; @@ -24,6 +26,7 @@ using osu.Game.Screens.OnlinePlay.Multiplayer.Participants; using osu.Game.Tests.Resources; using osu.Game.Users; using osuTK; +using osuTK.Input; namespace osu.Game.Tests.Visual.Multiplayer { @@ -447,6 +450,35 @@ namespace osu.Game.Tests.Visual.Multiplayer }); } + [Test] + public void TestTeams() + { + AddStep("enable teams", () => MultiplayerClient.ChangeSettings(matchType: MatchType.TeamVersus)); + AddAssert("one unique panel", () => this.ChildrenOfType().Select(p => p.Current.Value).Distinct().Count() == 1); + + int id = 3; + AddRepeatStep("add users", () => MultiplayerClient.AddUser(new APIUser + { + Id = Interlocked.Increment(ref id), + Username = "Second", + CoverUrl = TestResources.COVER_IMAGE_3, + }), 5); + + AddAssert("two unique panels", () => this.ChildrenOfType().Select(p => p.Current.Value).Distinct().Count() == 6); + + AddAssert("user 1001 on red team", + () => (MultiplayerClient.ClientRoom!.Users.Single(u => u.UserID == 1001).MatchState as TeamVersusUserState)?.TeamID, + () => Is.EqualTo(0)); + AddStep("click first team indicator", () => + { + InputManager.MoveMouseTo(this.ChildrenOfType().First()); + InputManager.Click(MouseButton.Left); + }); + AddAssert("user 1001 on blue team", + () => (MultiplayerClient.ClientRoom!.Users.Single(u => u.UserID == 1001).MatchState as TeamVersusUserState)?.TeamID, + () => Is.EqualTo(1)); + } + private void createNewParticipantsList() { ParticipantsList? participantsList = null;