Skip to content

Commit

Permalink
Add test for updating team settings with invalid form data
Browse files Browse the repository at this point in the history
  • Loading branch information
araszka committed Jul 13, 2024
1 parent af4cb8c commit d637504
Showing 1 changed file with 46 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using EvoSC.Common.Interfaces.Localization;
using System.Dynamic;
using EvoSC.Common.Interfaces.Models;
using EvoSC.Manialinks.Interfaces.Models;
using EvoSC.Modules.Official.TeamSettingsModule.Controllers;
Expand Down Expand Up @@ -28,10 +28,54 @@ public async Task Team_Settings_Updated()
{
var teamSettings = new TeamSettingsModel();

await Controller.ValidateModelAsync();
await Controller.SaveTeamSettingsAsync(teamSettings);

_teamSettingsService.Verify(m => m.SetTeamSettingsAsync(teamSettings));
_teamSettingsService.Verify(m => m.SetTeamSettingsAsync(teamSettings), Times.Once);
_teamSettingsService.Verify(m => m.HideTeamSettingsAsync(Context.Object.Player));
AuditEventBuilder.Verify(m => m.Success());
}

[Theory]
[InlineData("", "fff", null, null, "Test2", "fff", null, null)]
[InlineData("Test1", "", null, null, "Test2", "fff", null, null)]
[InlineData("Test1", "fff", "invalid", null, "Test2", "fff", null, null)]
[InlineData("Test1", "fff", null, "invalid", "Test2", "fff", null, null)]
[InlineData("Test1", "fff", null, null, "", "fff", null, null)]
[InlineData("Test1", "fff", null, null, "Test2", "", null, null)]
[InlineData("Test1", "fff", null, null, "Test2", "fff", "invalid", null)]
[InlineData("Test1", "fff", null, null, "Test2", "fff", null, "invalid")]
public async Task Team_Settings_Do_Not_Update_With_Invalid_Data(
string team1Name,
string team1PrimaryColor,
string? team1SecondaryColor,
string? team1EmblemUrl,
string team2Name,
string team2PrimaryColor,
string? team2SecondaryColor,
string? team2EmblemUrl
)
{
var teamSettings = new TeamSettingsModel
{
Team1Name = team1Name,
Team1PrimaryColor = team1PrimaryColor,
Team1SecondaryColor = team1SecondaryColor,
Team1EmblemUrl = team1EmblemUrl,
Team2Name = team2Name,
Team2PrimaryColor = team2PrimaryColor,
Team2SecondaryColor = team2SecondaryColor,
Team2EmblemUrl = team2EmblemUrl
};

_manialinkActionContext.Setup(m => m.EntryModel).Returns(teamSettings);

var validationResult = await Controller.ValidateModelAsync();
Assert.False(validationResult.IsValid);
await Controller.SaveTeamSettingsAsync(teamSettings);

_teamSettingsService.Verify(m => m.SetTeamSettingsAsync(teamSettings), Times.Never);
_teamSettingsService.Verify(m => m.HideTeamSettingsAsync(_player.Object), Times.Never);
ManialinkManager.Verify(m => m.SendManialinkAsync(_player.Object, "TeamSettings.EditTeamSettings", It.IsAny<ExpandoObject>()), Times.Once);
}
}

0 comments on commit d637504

Please sign in to comment.