package org.mafagafogigante.dungeon.schema.rules; import org.mafagafogigante.dungeon.schema.JsonRule; import com.eclipsesource.json.JsonArray; import org.junit.Test; public class GroupJsonRuleTest { private static final int MIN_ELEMENT_VALUE = 0; private static final int MAX_ELEMENT_VALUE = 5; private static final int REQUIRED_ARRAY_SIZE = 2; private static final JsonRule groupRule = new GroupJsonRule( JsonRuleFactory.makeVariableArrayRule(JsonRuleFactory.makeBoundIntegerRule(MIN_ELEMENT_VALUE, MAX_ELEMENT_VALUE)), JsonRuleFactory.makeArraySizeRule(REQUIRED_ARRAY_SIZE)); @Test(expected = IllegalArgumentException.class) public void groupRuleShouldFailOnBoundIntegerRule() { JsonArray jsonArray = new JsonArray(); jsonArray.add(6); jsonArray.add(6); groupRule.validate(jsonArray); } @Test(expected = IllegalArgumentException.class) public void groupRuleShouldFailOnArraySizeRule() { JsonArray jsonArray = new JsonArray(); jsonArray.add(1); jsonArray.add(2); jsonArray.add(3); groupRule.validate(jsonArray); } @Test public void groupRuleShouldPassOnValidObject() { JsonArray jsonArray = new JsonArray(); jsonArray.add(1); jsonArray.add(2); groupRule.validate(jsonArray); } }