fix: enabled validation for all characters in CharacterConfig
This commit is contained in:
parent
ebf9e3e393
commit
bf2ef23733
@ -1,6 +1,7 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.config;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
|
||||
import java.util.*;
|
||||
@ -11,6 +12,7 @@ import java.util.*;
|
||||
public class CharacterConfig {
|
||||
|
||||
@NotEmpty
|
||||
@Valid
|
||||
public CharacterProperties[] characters;
|
||||
|
||||
@JsonIgnore private Map<String, CharacterProperties> propertyMap;
|
||||
|
@ -4,6 +4,9 @@ import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.ValidatorFactory;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import uulm.teamname.marvelous.gamelibrary.config.CharacterConfig;
|
||||
import uulm.teamname.marvelous.gamelibrary.config.CharacterProperties;
|
||||
import uulm.teamname.marvelous.gamelibrary.config.ScenarioConfig;
|
||||
import uulm.teamname.marvelous.gamelibrary.json.ValidationUtility;
|
||||
import uulm.teamname.marvelous.gamelibrary.messages.client.CharacterSelectionMessage;
|
||||
|
||||
@ -55,4 +58,76 @@ class MessageValidationUtilityTest {
|
||||
.isEqualTo("characters: doesn't have twelve elements");
|
||||
}
|
||||
|
||||
@Test
|
||||
void validateCharacterConfigTest() {
|
||||
var racoon = new CharacterProperties();
|
||||
|
||||
racoon.characterID = 1;
|
||||
racoon.name = "Rocket Raccoon";
|
||||
racoon.HP = 100;
|
||||
racoon.MP = 2;
|
||||
racoon.AP = 2;
|
||||
racoon.meleeDamage = 10;
|
||||
racoon.rangedDamage = 30;
|
||||
racoon.attackRange = 5;
|
||||
|
||||
|
||||
var quicksilver = new CharacterProperties();
|
||||
|
||||
quicksilver.characterID = 2;
|
||||
quicksilver.name = "Quicksilver";
|
||||
quicksilver.HP = 100;
|
||||
quicksilver.MP = 6;
|
||||
quicksilver.AP = 1;
|
||||
quicksilver.meleeDamage = 10;
|
||||
quicksilver.rangedDamage = 10;
|
||||
quicksilver.attackRange = 3;
|
||||
|
||||
|
||||
var hulk = new CharacterProperties();
|
||||
|
||||
hulk.characterID = 3;
|
||||
hulk.name = "Hulk";
|
||||
hulk.HP = 100;
|
||||
hulk.MP = 2;
|
||||
hulk.AP = 2;
|
||||
hulk.meleeDamage = 10;
|
||||
hulk.rangedDamage = 30;
|
||||
hulk.attackRange = 5;
|
||||
|
||||
var loki = new CharacterProperties();
|
||||
|
||||
loki.characterID = 19;
|
||||
loki.name = "Loki";
|
||||
loki.HP = 100;
|
||||
loki.MP = 6;
|
||||
loki.AP = 1;
|
||||
loki.meleeDamage = 10;
|
||||
loki.rangedDamage = 10;
|
||||
loki.attackRange = 3;
|
||||
|
||||
var silversurfer = new CharacterProperties();
|
||||
|
||||
silversurfer.characterID = 20;
|
||||
silversurfer.name = "";
|
||||
silversurfer.HP = 100;
|
||||
silversurfer.MP = 6;
|
||||
silversurfer.AP = 1;
|
||||
silversurfer.meleeDamage = -1;
|
||||
// silversurfer.rangedDamage = 10;
|
||||
silversurfer.attackRange = 3;
|
||||
|
||||
var characterConfig = new CharacterConfig();
|
||||
|
||||
assertThat(ValidationUtility.validate(characterConfig).get())
|
||||
.isEqualTo("characters must not be empty");
|
||||
|
||||
characterConfig.characters = new CharacterProperties[] {racoon, quicksilver, hulk, loki, silversurfer};
|
||||
|
||||
assertThat(ValidationUtility.validate(characterConfig).get())
|
||||
.contains("characters[4].rangedDamage must be greater than 0",
|
||||
"characters[4].name must not be empty",
|
||||
"characters[4].meleeDamage must be greater than 0");
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user