feat: allow players to leave sessions
This commit is contained in:
@@ -28,4 +28,26 @@ public sealed class SessionCapacityRulesTests
|
||||
Assert.False(SessionCapacityRules.CanPromoteWaitlistedPlayer(maxPlayers: 3, activeParticipants: 3, waitlistedParticipants: 1));
|
||||
Assert.False(SessionCapacityRules.CanPromoteWaitlistedPlayer(maxPlayers: 3, activeParticipants: 2, waitlistedParticipants: 0));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ShouldPromoteAfterParticipantLeaves_ShouldOnlyPromoteAfterActiveParticipantLeaves()
|
||||
{
|
||||
Assert.True(SessionCapacityRules.ShouldPromoteAfterParticipantLeaves(
|
||||
removedRegistrationStatus: ParticipantRegistrationStatus.Active,
|
||||
maxPlayers: 2,
|
||||
activeParticipantsAfterLeave: 1,
|
||||
waitlistedParticipants: 1));
|
||||
|
||||
Assert.False(SessionCapacityRules.ShouldPromoteAfterParticipantLeaves(
|
||||
removedRegistrationStatus: ParticipantRegistrationStatus.Waitlisted,
|
||||
maxPlayers: 2,
|
||||
activeParticipantsAfterLeave: 1,
|
||||
waitlistedParticipants: 1));
|
||||
|
||||
Assert.False(SessionCapacityRules.ShouldPromoteAfterParticipantLeaves(
|
||||
removedRegistrationStatus: ParticipantRegistrationStatus.Active,
|
||||
maxPlayers: 2,
|
||||
activeParticipantsAfterLeave: 1,
|
||||
waitlistedParticipants: 0));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,13 +42,15 @@ public sealed class SessionBatchRendererTests
|
||||
Assert.Contains("Лист ожидания (1)", text);
|
||||
Assert.Contains("Charlie", text);
|
||||
Assert.Contains("Bob", text);
|
||||
Assert.Equal(2, result.Markup.InlineKeyboard.Count());
|
||||
Assert.Equal(4, result.Markup.InlineKeyboard.Count());
|
||||
Assert.Collection(
|
||||
buttons.Select(button => button.CallbackData),
|
||||
callbackData => Assert.Equal($"join_session:{firstSessionId}", callbackData),
|
||||
callbackData => Assert.Equal($"leave_session:{firstSessionId}", callbackData),
|
||||
callbackData => Assert.Equal($"cancel_session:{firstSessionId}", callbackData),
|
||||
callbackData => Assert.Equal($"reschedule_session:{firstSessionId}", callbackData),
|
||||
callbackData => Assert.Equal($"join_session:{secondSessionId}", callbackData),
|
||||
callbackData => Assert.Equal($"leave_session:{secondSessionId}", callbackData),
|
||||
callbackData => Assert.Equal($"cancel_session:{secondSessionId}", callbackData),
|
||||
callbackData => Assert.Equal($"reschedule_session:{secondSessionId}", callbackData),
|
||||
callbackData => Assert.Equal($"promote_waitlist:{secondSessionId}", callbackData));
|
||||
|
||||
Reference in New Issue
Block a user