feat: implemented JSON validation
This commit is contained in:
@ -0,0 +1,54 @@
|
||||
package uulm.teamname.marvelous.gamelibrary.messages;
|
||||
|
||||
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.messages.client.CharacterSelectionMessage;
|
||||
|
||||
import jakarta.validation.Validation;
|
||||
import jakarta.validation.Validator;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
class MessageValidationTest {
|
||||
|
||||
ValidatorFactory factory;
|
||||
Validator validator;
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
factory = Validation.buildDefaultValidatorFactory();
|
||||
validator = factory.getValidator();
|
||||
}
|
||||
|
||||
// TODO: more tests here
|
||||
|
||||
@Test
|
||||
void CharacterSelectionMessageTest() {
|
||||
var message = new CharacterSelectionMessage();
|
||||
|
||||
var violations = validator.validate(message);
|
||||
|
||||
assertThat(violations).size().isOne();
|
||||
|
||||
message.characters = new Boolean[] {true, false, true, false, true, false}; // too little
|
||||
|
||||
violations = validator.validate(message);
|
||||
|
||||
var violationsString = violations.stream()
|
||||
.map(violation -> violation.getPropertyPath() + " " + violation.getMessage())
|
||||
.collect(Collectors.joining(", "));
|
||||
|
||||
// System.out.println(violationsString);
|
||||
|
||||
assertThat(violations).isNotEmpty();
|
||||
assertThat(violationsString)
|
||||
.isEqualTo("characters doesn't have twelve elements");
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user