feat: implemented JSON validation

This commit is contained in:
2021-06-05 15:57:33 +02:00
parent 1f3eb89532
commit e42bce7917
19 changed files with 220 additions and 6 deletions

View File

@ -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");
}
}