@Singleton @ProvidesIntoSet public static ConstraintMapping getWorkflowTaskConstraint(final HibernateValidatorConfiguration configuration) { ConstraintMapping mapping = configuration.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()) .constraint(new WorkflowTaskValidConstraintDef()); return mapping; }
@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 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 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 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 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 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 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 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 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()); }
@Singleton @ProvidesIntoSet public static ConstraintMapping getWorkflowTaskConstraint(final HibernateValidatorConfiguration configuration) { ConstraintMapping mapping = configuration.createConstraintMapping(); mapping.type(WorkflowTask.class) .constraint(new WorkflowTaskTypeConstraintDef()) .constraint(new WorkflowTaskValidConstraintDef()); return mapping; }
.property("type", FIELD).constraint(new NotNullDef()); constraints.type(TransformGroupBy.class).constraint(new TransformGroupByConstraintDef());