@Test public void testWorkflowTaskTypeFork() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("FORK_JOIN"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef()); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(1, result.size()); List<String> validationErrors = new ArrayList<>(); result.forEach(e -> validationErrors.add(e.getMessage())); assertTrue(validationErrors.contains("forkTasks should have atleast one task for taskType: FORK_JOIN taskName: encode")); }
@Test public void testWorkflowTaskTypeHTTPWithHttpParamMissing() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("HTTP"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef()); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(1, result.size()); List<String> validationErrors = new ArrayList<>(); result.forEach(e -> validationErrors.add(e.getMessage())); assertTrue(validationErrors.contains("inputParameters.http_request field is required for taskType: HTTP taskName: encode")); }
@Test public void testWorkflowTaskTypeDynamic() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("DYNAMIC"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef()); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(1, result.size()); assertEquals(result.iterator().next().getMessage(), "dynamicTaskNameParam field is required for taskType: DYNAMIC taskName: encode"); }
@Test public void testWorkflowTaskTypeEvent() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("EVENT"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef()); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(1, result.size()); assertEquals(result.iterator().next().getMessage(), "sink field is required for taskType: EVENT taskName: encode"); }
@Test public void testWorkflowTaskTypeDecision() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("DECISION"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef()); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(2, result.size()); List<String> validationErrors = new ArrayList<>(); result.forEach(e -> validationErrors.add(e.getMessage())); assertTrue(validationErrors.contains("decisionCases should have atleast one task for taskType: DECISION taskName: encode")); assertTrue(validationErrors.contains("caseValueParam field is required for taskType: DECISION taskName: encode")); }
@Test public void testWorkflowTaskTypeForJoinDynamic() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("FORK_JOIN_DYNAMIC"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef()); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(2, result.size()); List<String> validationErrors = new ArrayList<>(); result.forEach(e -> validationErrors.add(e.getMessage())); assertTrue(validationErrors.contains("dynamicForkTasksInputParamName field is required for taskType: FORK_JOIN_DYNAMIC taskName: encode")); assertTrue(validationErrors.contains("dynamicForkTasksParam field is required for taskType: FORK_JOIN_DYNAMIC taskName: encode")); }
@Test public void testWorkflowTaskTypeForJoinDynamicWithForJoinTaskParam() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("FORK_JOIN_DYNAMIC"); workflowTask.setDynamicForkJoinTasksParam("taskList"); workflowTask.setDynamicForkTasksInputParamName("ForkTaskInputParam"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef()); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(1, result.size()); List<String> validationErrors = new ArrayList<>(); result.forEach(e -> validationErrors.add(e.getMessage())); assertTrue(validationErrors.contains("dynamicForkJoinTasksParam or combination of dynamicForkTasksInputParamName and dynamicForkTasksParam cam be used for taskType: FORK_JOIN_DYNAMIC taskName: encode")); }
@Test public void testWorkflowTaskTypeHTTP() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("HTTP"); workflowTask.getInputParameters().put("http_request", "http://www.netflix.com"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef()); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(0, result.size()); }
@Test public void testWorkflowTaskTypeForJoinDynamicWithForJoinTaskParamAndInputTaskParam() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("FORK_JOIN_DYNAMIC"); workflowTask.setDynamicForkJoinTasksParam("taskList"); workflowTask.setDynamicForkTasksInputParamName("ForkTaskInputParam"); workflowTask.setDynamicForkTasksParam("ForkTasksParam"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef()); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(1, result.size()); List<String> validationErrors = new ArrayList<>(); result.forEach(e -> validationErrors.add(e.getMessage())); assertTrue(validationErrors.contains("dynamicForkJoinTasksParam or combination of dynamicForkTasksInputParamName and dynamicForkTasksParam cam be used for taskType: FORK_JOIN_DYNAMIC taskName: encode") ); }
@Test public void testWorkflowTaskTypeForJoinDynamicLegacy() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("FORK_JOIN_DYNAMIC"); workflowTask.setDynamicForkJoinTasksParam("taskList"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef()); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(0, result.size()); }
@Test public void testWorkflowTaskTypeHTTPWithHttpParamInTaskDef() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("HTTP"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); TaskDef taskDef = new TaskDef(); taskDef.setName("encode"); taskDef.getInputTemplate().put("http_request", "http://www.netflix.com"); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(taskDef); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(0, result.size()); }
@Test public void testWorkflowTaskTypeHTTPWithHttpParamInTaskDefAndWorkflowTask() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("HTTP"); workflowTask.getInputParameters().put("http_request", "http://www.netflix.com"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); TaskDef taskDef = new TaskDef(); taskDef.setName("encode"); taskDef.getInputTemplate().put("http_request", "http://www.netflix.com"); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(taskDef); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(0, result.size()); }
@Test public void testWorkflowTaskTypeForJoinDynamicValid() { WorkflowTask workflowTask = createSampleWorkflowTask(); workflowTask.setType("FORK_JOIN_DYNAMIC"); workflowTask.setDynamicForkTasksParam("ForkTasksParam"); workflowTask.setDynamicForkTasksInputParamName("ForkTaskInputParam"); ConstraintMapping mapping = config.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()); Validator validator = config.addMapping(mapping) .buildValidatorFactory() .getValidator(); when(mockMetadataDao.getTaskDef(anyString())).thenReturn(new TaskDef()); Set<ConstraintViolation<WorkflowTask>> result = validator.validate(workflowTask); assertEquals(0, result.size()); }
HibernateValidatorConfiguration configuration = Validation .byProvider( HibernateValidator.class ) .configure(); ConstraintMapping constraintMapping = configuration.createConstraintMapping(); constraintMapping .type( ExternalClass.class ) .property( "someProperty", FIELD ) .constraint( new NotNullDef() ) .constraint( new SizeDef().min( 2 ).max( 14 ) ) .type( AnotherExternalClass.class ) .property( "anotherProperty", METHOD ) .constraint( new NotNullDef() ); Validator validator = configuration.addMapping( constraintMapping ) .buildValidatorFactory() .getValidator();
ConstraintMapping customMapping = new ConstraintMapping(); customMapping.type(Length.class).property("lengthUnit", FIELD).constraint(new PatternDef().regexp("^(mm|cm|inch)$")); HibernateValidatorConfiguration cfg = Validation.byProvider(HibernateValidator.class).configure(); cfg.addMapping(customMapping); ValidatorFactory vf = cfg.buildValidatorFactory(); Validator validator = vf.getValidator()
int minValue1 = ...; //read from properties file etc. int minValue2 = ...; //programmatically define the constraints for the Test type ConstraintMapping mapping = new ConstraintMapping(); mapping.type( Test.class ) .property( "prop", FIELD ) .constraint( new NotNullDef() ) .constraint( new SizeDef().min( minValue1 ).groups( GroupOne.class ) ) .constraint( new SizeDef().min( minValue2 ).groups( GroupTwo.class ) ); //retrieve a validator using the programmatic constraint mapping HibernateValidatorConfiguration config = Validation.byProvider( HibernateValidator.class ).configure(); config.addMapping( mapping ); ValidatorFactory factory = config.buildValidatorFactory(); Validator validator = factory.getValidator();
String dynamicPattern = ...; ConstraintMapping mapping = new ConstraintMapping(); mapping.type( ContactInfo.class ) .property( "workPhone", FIELD ) .constraint( new PatternDef().regexp( dynamicPattern ) ); HibernateValidatorConfiguration config = Validation.byProvider( HibernateValidator.class ).configure(); config.addMapping( mapping ); Validator validator = config.buildValidatorFactory().getValidator();
int dynamicallyCalculatedConstraintValue = ...; ConstraintMapping mapping = new ConstraintMapping(); mapping.type( MyBean.class ) .property( "mininumAge", FIELD ) .constraint( new MaxDef().value( dynamicallyCalculatedConstraintValue ) ); HibernateValidatorConfiguration config = Validation.byProvider( HibernateValidator.class ).configure(); config.addMapping( mapping ); Validator validator = config.buildValidatorFactory().getValidator();
public InputValidation() { HibernateValidatorConfiguration config = Validation.byProvider(HibernateValidator.class).configure(); this.validator = config .addMapping(configureTransforms(config.createConstraintMapping())) .buildValidatorFactory() .getValidator(); }
public IntegrationTest() { final DefaultConstraintMapping mapping = new DefaultConstraintMapping(); mapping.constraintDefinition(UniqueProperty.class).validatedBy(UniqnenessValidator.class); final ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class).configure() .addMapping(mapping).buildValidatorFactory(); validator = validatorFactory.getValidator(); }