@Parameters({ "required1", "required2", "required3", "required3;required1", "required2;required3", "required1;required3" }) @Test public void shouldNotPassValidationManyRequired(String required) { // given SchemaValidationRule rule = new SchemaValidationRule("topElem"); rule.addMandatoryElements("required1"); rule.addMandatoryElements("required2"); rule.addMandatoryElements("required3"); sut = new CommandSchemaValidator(rule); // and Map<String, String> params = new HashMap<String, String>(); params.put("topElem", "some value doesn't matter what"); String[] requiredParams = required.split(";"); for (String param : requiredParams) { if (!param.isEmpty()) { params.put(param, "some value doesn't matter what"); } } // then expectValidationException("[required1, required2, required3]", "[]"); sut.validateCommandSchema(params); }
@Test public void shouldPassValidationOneTopOneRequiredNoOptional() { // given SchemaValidationRule rule = new SchemaValidationRule("topElem"); rule.addMandatoryElements("additionalRequired"); sut = new CommandSchemaValidator(rule); Map<String, String> someMap = new HashMap<String, String>(); // and someMap.put("topElem", "some value doesn't matter what"); someMap.put("additionalRequired", "some value doesn't matter what"); // when sut.validateCommandSchema(someMap); // then no exception expected }
@Test public void shouldNotPassValidationOneTopOneRequiredNoOptional1() { // given SchemaValidationRule rule = new SchemaValidationRule("topElem"); rule.addMandatoryElements("required"); sut = new CommandSchemaValidator(rule); Map<String, String> someMap = new HashMap<String, String>(); // and someMap.put("topElem", "some value doesn't matter what"); someMap.put("notExpectedElem", "some value doesn't matter what"); // then expectValidationException("[required]", "[]"); sut.validateCommandSchema(someMap); }
@Test public void shouldNotPassValidationOneRequiredOneOptional1() { // given SchemaValidationRule rule = new SchemaValidationRule("topElem"); rule.addMandatoryElements("required"); rule.addOptionalElements("optional"); sut = new CommandSchemaValidator(rule); Map<String, String> params = new HashMap<String, String>(); // and params.put("topElem", "some value doesn't matter what"); params.put("optional", "some value doesn't matter what"); // then expectValidationException("[required]", "[optional]"); sut.validateCommandSchema(params); }
@Parameters({ "", "optional1;optional2;optional3", "optional1", "optional2", "optional3", "optional3;optional1", "optional2;optional3", "optional1;optional3" }) @Test public void shouldPassValidationManyRequired(String optionals) { // given SchemaValidationRule rule = new SchemaValidationRule("topElem"); rule.addMandatoryElements("required1"); rule.addMandatoryElements("required2"); rule.addMandatoryElements("required3"); rule.addOptionalElements("optional1"); rule.addOptionalElements("optional2"); rule.addOptionalElements("optional3"); sut = new CommandSchemaValidator(rule); // and Map<String, String> params = new HashMap<String, String>(); params.put("topElem", "some value doesn't matter what"); params.put("required1", "some value doesn't matter what"); params.put("required2", "some value doesn't matter what"); params.put("required3", "some value doesn't matter what"); String[] options = optionals.split(";"); for (String optional : options) { if (!optional.isEmpty()) { params.put(optional, "some value doesn't matter what"); } } // then sut.validateCommandSchema(params); }
@Test public void shouldPassValidationWhenNoValidationRules() { // given sut = new CommandSchemaValidator( SchemaValidationRule.emptyValidationRules(), new ArrayList<ParameterValueValidator>()); Map<String, String> someMap = new HashMap<String, String>(); // and someMap.put("paramOne", "value one"); someMap.put("paramTwo", "value 2"); someMap.put("param3", "value 3"); // when sut.validateCommandSchema(someMap); sut.validateCommandSchema(new HashMap<String, String>()); // then no exception expected }