test: consolidate capacity tests, add GameSystem edge cases, remove ShowcaseQueryTests
This commit is contained in:
@@ -8,9 +8,12 @@ public sealed class GameSystemTests
|
|||||||
[InlineData("Dnd5e", GameSystem.Dnd5e)]
|
[InlineData("Dnd5e", GameSystem.Dnd5e)]
|
||||||
[InlineData("D&D", GameSystem.Dnd5e)]
|
[InlineData("D&D", GameSystem.Dnd5e)]
|
||||||
[InlineData("dnd5e", GameSystem.Dnd5e)]
|
[InlineData("dnd5e", GameSystem.Dnd5e)]
|
||||||
|
[InlineData(" dnd5e ", GameSystem.Dnd5e)]
|
||||||
|
[InlineData("D&D 5e", GameSystem.Dnd5e)]
|
||||||
[InlineData("pathfinder", GameSystem.Pathfinder2e)]
|
[InlineData("pathfinder", GameSystem.Pathfinder2e)]
|
||||||
[InlineData("call of cthulhu", GameSystem.CallOfCthulhu7e)]
|
[InlineData("call of cthulhu", GameSystem.CallOfCthulhu7e)]
|
||||||
[InlineData("shadow", GameSystem.Shadowdark)]
|
[InlineData("shadow", GameSystem.Shadowdark)]
|
||||||
|
[InlineData("dark", GameSystem.Shadowdark)]
|
||||||
[InlineData("unknown xyz", GameSystem.Other)]
|
[InlineData("unknown xyz", GameSystem.Other)]
|
||||||
public void TryParseFuzzy_ShouldMapInputToExpectedSystem(string input, GameSystem expected)
|
public void TryParseFuzzy_ShouldMapInputToExpectedSystem(string input, GameSystem expected)
|
||||||
{
|
{
|
||||||
@@ -52,6 +55,7 @@ public sealed class GameSystemTests
|
|||||||
[InlineData(GameSystem.Other, "Другое")]
|
[InlineData(GameSystem.Other, "Другое")]
|
||||||
[InlineData(GameSystem.Pathfinder2e, "Pathfinder 2e")]
|
[InlineData(GameSystem.Pathfinder2e, "Pathfinder 2e")]
|
||||||
[InlineData(GameSystem.Shadowdark, "Shadowdark")]
|
[InlineData(GameSystem.Shadowdark, "Shadowdark")]
|
||||||
|
[InlineData((GameSystem)999, "Другое")]
|
||||||
public void ToDisplayName_ShouldReturnExpectedName(GameSystem system, string expected)
|
public void ToDisplayName_ShouldReturnExpectedName(GameSystem system, string expected)
|
||||||
{
|
{
|
||||||
var result = system.ToDisplayName();
|
var result = system.ToDisplayName();
|
||||||
|
|||||||
@@ -21,6 +21,30 @@ public sealed class SessionCapacityRulesTests
|
|||||||
Assert.Equal(ParticipantRegistrationStatus.Waitlisted, status);
|
Assert.Equal(ParticipantRegistrationStatus.Waitlisted, status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void DecideJoinStatus_ShouldReturnActive_WhenUnlimitedSeats()
|
||||||
|
{
|
||||||
|
var status = SessionCapacityRules.DecideJoinStatus(maxPlayers: null, activeParticipants: 5);
|
||||||
|
|
||||||
|
Assert.Equal(ParticipantRegistrationStatus.Active, status);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void DecideJoinStatus_ShouldReturnWaitlisted_WhenOverCapacity()
|
||||||
|
{
|
||||||
|
var status = SessionCapacityRules.DecideJoinStatus(maxPlayers: 3, activeParticipants: 5);
|
||||||
|
|
||||||
|
Assert.Equal(ParticipantRegistrationStatus.Waitlisted, status);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void DecideJoinStatus_ShouldReturnActive_WhenZeroActiveAndPositiveMax()
|
||||||
|
{
|
||||||
|
var status = SessionCapacityRules.DecideJoinStatus(maxPlayers: 1, activeParticipants: 0);
|
||||||
|
|
||||||
|
Assert.Equal(ParticipantRegistrationStatus.Active, status);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void CanPromoteWaitlistedPlayer_ShouldRequireWaitlistAndFreeSeat()
|
public void CanPromoteWaitlistedPlayer_ShouldRequireWaitlistAndFreeSeat()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,55 +0,0 @@
|
|||||||
using GmRelay.Bot.Features.Sessions.CreateSession;
|
|
||||||
using GmRelay.Shared.Domain;
|
|
||||||
|
|
||||||
namespace GmRelay.Bot.Tests.Web;
|
|
||||||
|
|
||||||
public sealed class ShowcaseQueryTests
|
|
||||||
{
|
|
||||||
[Fact]
|
|
||||||
public void RegisterFromShowcase_WhenUnlimitedSeats_ShouldReturnActive()
|
|
||||||
{
|
|
||||||
var status = SessionCapacityRules.DecideJoinStatus(maxPlayers: null, activeParticipants: 5);
|
|
||||||
|
|
||||||
Assert.Equal(ParticipantRegistrationStatus.Active, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void RegisterFromShowcase_WhenOneFreeSeat_ShouldReturnActive()
|
|
||||||
{
|
|
||||||
var status = SessionCapacityRules.DecideJoinStatus(maxPlayers: 4, activeParticipants: 3);
|
|
||||||
|
|
||||||
Assert.Equal(ParticipantRegistrationStatus.Active, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void RegisterFromShowcase_WhenExactlyAtCapacity_ShouldReturnWaitlisted()
|
|
||||||
{
|
|
||||||
var status = SessionCapacityRules.DecideJoinStatus(maxPlayers: 4, activeParticipants: 4);
|
|
||||||
|
|
||||||
Assert.Equal(ParticipantRegistrationStatus.Waitlisted, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void RegisterFromShowcase_WhenOverCapacity_ShouldReturnWaitlisted()
|
|
||||||
{
|
|
||||||
var status = SessionCapacityRules.DecideJoinStatus(maxPlayers: 3, activeParticipants: 5);
|
|
||||||
|
|
||||||
Assert.Equal(ParticipantRegistrationStatus.Waitlisted, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void RegisterFromShowcase_WhenZeroActiveAndZeroMax_ShouldReturnWaitlisted()
|
|
||||||
{
|
|
||||||
var status = SessionCapacityRules.DecideJoinStatus(maxPlayers: 0, activeParticipants: 0);
|
|
||||||
|
|
||||||
Assert.Equal(ParticipantRegistrationStatus.Waitlisted, status);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void RegisterFromShowcase_WhenZeroActiveAndPositiveMax_ShouldReturnActive()
|
|
||||||
{
|
|
||||||
var status = SessionCapacityRules.DecideJoinStatus(maxPlayers: 1, activeParticipants: 0);
|
|
||||||
|
|
||||||
Assert.Equal(ParticipantRegistrationStatus.Active, status);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user