1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-27 14:42:57 +08:00
osu-lazer/osu.Game.Tests/Visual/Multiplayer/TestSceneRankRangePill.cs

106 lines
3.1 KiB
C#
Raw Normal View History

2021-07-12 15:15:26 +08:00
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
2022-06-17 15:37:17 +08:00
#nullable disable
using System.Collections.Generic;
using System.Linq;
using Moq;
2021-07-12 15:15:26 +08:00
using NUnit.Framework;
using osu.Framework.Allocation;
2021-07-12 15:15:26 +08:00
using osu.Framework.Graphics;
using osu.Game.Online.API.Requests.Responses;
using osu.Game.Online.Multiplayer;
using osu.Game.Online.Rooms;
2021-07-13 15:02:18 +08:00
using osu.Game.Screens.OnlinePlay.Lounge.Components;
2021-07-12 15:15:26 +08:00
namespace osu.Game.Tests.Visual.Multiplayer
{
public class TestSceneRankRangePill : OsuTestScene
2021-07-12 15:15:26 +08:00
{
private readonly Mock<MultiplayerClient> multiplayerClient = new Mock<MultiplayerClient>();
protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent) =>
// not used directly in component, but required due to it inheriting from OnlinePlayComposite.
new CachedModelDependencyContainer<Room>(base.CreateChildDependencies(parent));
[BackgroundDependencyLoader]
private void load()
2021-07-12 15:15:26 +08:00
{
Dependencies.CacheAs(multiplayerClient.Object);
2021-07-12 15:15:26 +08:00
Child = new RankRangePill
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre
};
}
2021-07-12 15:15:26 +08:00
[Test]
public void TestSingleUser()
{
setupRoomWithUsers(new APIUser
2021-07-12 15:15:26 +08:00
{
Id = 2,
Statistics = { GlobalRank = 1234 }
2021-07-12 15:15:26 +08:00
});
}
[Test]
public void TestMultipleUsers()
{
setupRoomWithUsers(
new APIUser
2021-07-12 15:15:26 +08:00
{
Id = 2,
Statistics = { GlobalRank = 1234 }
},
new APIUser
2021-07-12 15:15:26 +08:00
{
Id = 3,
Statistics = { GlobalRank = 3333 }
},
new APIUser
2021-07-12 15:15:26 +08:00
{
Id = 4,
Statistics = { GlobalRank = 4321 }
});
}
[TestCase(1, 10)]
[TestCase(10, 100)]
[TestCase(100, 1000)]
[TestCase(1000, 10000)]
[TestCase(10000, 100000)]
[TestCase(100000, 1000000)]
[TestCase(1000000, 10000000)]
public void TestRange(int min, int max)
{
setupRoomWithUsers(
new APIUser
{
Id = 2,
Statistics = { GlobalRank = min }
},
new APIUser
{
Id = 3,
Statistics = { GlobalRank = max }
});
}
private void setupRoomWithUsers(params APIUser[] users)
{
AddStep("setup room", () =>
{
multiplayerClient.SetupGet(m => m.Room).Returns(new MultiplayerRoom(0)
{
Users = new List<MultiplayerRoomUser>(users.Select(apiUser => new MultiplayerRoomUser(apiUser.Id) { User = apiUser }))
});
multiplayerClient.Raise(m => m.RoomUpdated -= null);
});
}
2021-07-12 15:15:26 +08:00
}
}