mirror of
https://github.com/edgegamers/Gangs.git
synced 2025-12-06 04:42:56 -08:00
Merge pull request #101 from KalebSchmenk/dev
Invite Cancel + Gang Owner Transfer Unit Tests
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
using Commands;
|
||||
using Commands.Gang;
|
||||
using CounterStrikeSharp.API.Modules.Commands;
|
||||
using GangsAPI;
|
||||
using GangsAPI.Data.Command;
|
||||
using GangsAPI.Extensions;
|
||||
using GangsAPI.Services.Gang;
|
||||
using GangsAPI.Services.Menu;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
@@ -86,4 +89,32 @@ public class GangTests(IServiceProvider provider) : TestParent(provider,
|
||||
Command.Name));
|
||||
Assert.NotNull(menus.GetActiveMenu(TestPlayer));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Gang_Transfer_Ownership()
|
||||
{
|
||||
// Ensure command is registered
|
||||
Commands.RegisterCommand(new TransferCommand(provider));
|
||||
|
||||
// Create original owner and owned gang
|
||||
await Players.CreatePlayer(TestPlayer.Steam, TestPlayer.Name);
|
||||
var owner = await Players.GetPlayer(TestPlayer.Steam);
|
||||
Assert.NotNull(owner);
|
||||
var gang = await Gangs.CreateGang("Test Gang", owner);
|
||||
Assert.NotNull(gang);
|
||||
Assert.NotNull(owner.GangRank);
|
||||
|
||||
// Create player to transfer ownership to
|
||||
var newOwner = await Players.CreatePlayer(new Random().NextULong(), "NewOwner");
|
||||
newOwner.GangId = gang.GangId;
|
||||
var rank = await Ranks.GetLowerRank(gang.GangId, owner.GangRank.Value);
|
||||
Assert.NotNull(rank);
|
||||
newOwner.GangRank = rank.Rank;
|
||||
await Players.UpdatePlayer(newOwner);
|
||||
|
||||
// Transfer ownership
|
||||
Assert.Equal(CommandResult.SUCCESS,
|
||||
await Commands.ProcessCommand(TestPlayer, CommandCallingContext.Console,
|
||||
"transfer", newOwner.Steam.ToString()));
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ using GangsAPI;
|
||||
using GangsAPI.Data;
|
||||
using GangsAPI.Data.Command;
|
||||
using GangsAPI.Extensions;
|
||||
using GangsAPI.Perks;
|
||||
using GangsAPI.Permissions;
|
||||
using GangsAPI.Services;
|
||||
using GangsAPI.Services.Gang;
|
||||
@@ -195,4 +196,36 @@ public class InviteTests(IServiceProvider provider)
|
||||
[Locale.Get(MSG.COMMAND_INVITE_SUCCESS, guest.Name!, gang.Name)],
|
||||
TestPlayer.ConsoleOutput);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Invite_Cancel_When_Max_Capacity() {
|
||||
// Create executor and gang
|
||||
await Players.CreatePlayer(TestPlayer.Steam, TestPlayer.Name);
|
||||
var gang = await Gangs.CreateGang("Test Gang", TestPlayer);
|
||||
Assert.NotNull(gang);
|
||||
|
||||
// Send player that we want to cancel the invite to an invite
|
||||
var playerToCancel = await Players.CreatePlayer(new Random().NextULong(), "PlayerToCancel");
|
||||
await Players.UpdatePlayer(playerToCancel);
|
||||
Assert.Equal(CommandResult.SUCCESS,
|
||||
await Commands.ProcessCommand(TestPlayer, CommandCallingContext.Console,
|
||||
"invite", playerToCancel.Steam.ToString()));
|
||||
|
||||
// Assume gang capacity and current member count
|
||||
var capacity = 20;
|
||||
var members = 1;
|
||||
|
||||
// Fill gang to capacity starting at the current member count
|
||||
for (int i = members; i < capacity; ++i) {
|
||||
var guest = await Players.CreatePlayer(new Random().NextULong(), "Guest" + i);
|
||||
guest.GangId = gang.GangId;
|
||||
guest.GangRank = (await Ranks.GetJoinRank(gang)).Rank;
|
||||
await Players.UpdatePlayer(guest);
|
||||
}
|
||||
|
||||
// Attempt to cancel invite to player
|
||||
Assert.Equal(CommandResult.SUCCESS,
|
||||
await Commands.ProcessCommand(TestPlayer, CommandCallingContext.Console,
|
||||
"invite", "cancel", playerToCancel.Name!));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user