Search in sources :

Example 1 with ValidationException

use of org.ow2.proactive.scheduler.common.job.factories.spi.model.exceptions.ValidationException in project scheduling by ow2-proactive.

the class SpelValidator method validate.

@Override
public String validate(String parameterValue, ModelValidatorContext context) throws ValidationException {
    try {
        context.getSpELContext().setVariable("value", parameterValue);
        Object untypedResult = spelExpression.getValue(context.getSpELContext());
        if (!(untypedResult instanceof Boolean)) {
            throw new ValidationException("SPEL expression did not return a boolean value.");
        }
        boolean evaluationResult = (Boolean) untypedResult;
        if (!evaluationResult) {
            throw new ValidationException("SPEL expression returned false, received " + parameterValue);
        }
    } catch (EvaluationException e) {
        throw new ValidationException("SPEL expression raised an error: " + e.getMessage(), e);
    }
    return parameterValue;
}
Also used : ValidationException(org.ow2.proactive.scheduler.common.job.factories.spi.model.exceptions.ValidationException) EvaluationException(org.springframework.expression.EvaluationException)

Example 2 with ValidationException

use of org.ow2.proactive.scheduler.common.job.factories.spi.model.exceptions.ValidationException in project scheduling by ow2-proactive.

the class SpelValidatorTest method testSpelOKUpdateTaskVariable.

@Test
public void testSpelOKUpdateTaskVariable() throws ValidationException, UserException {
    SpelValidator validator = new SpelValidator("#value == 'MyString'?(variables['var1'] = 'toto1') instanceof T(String) : false");
    String value = "MyString";
    ModelValidatorContext context = new ModelValidatorContext(createTask());
    Assert.assertEquals(value, validator.validate(value, context));
    Assert.assertEquals("toto1", context.getSpELVariables().getVariables().get("var1"));
}
Also used : ModelValidatorContext(org.ow2.proactive.scheduler.common.job.factories.spi.model.ModelValidatorContext) Test(org.junit.Test)

Example 3 with ValidationException

use of org.ow2.proactive.scheduler.common.job.factories.spi.model.exceptions.ValidationException in project scheduling by ow2-proactive.

the class SpelValidatorTest method testSpelKO.

@Test(expected = ValidationException.class)
public void testSpelKO() throws ValidationException {
    SpelValidator validator = new SpelValidator("#value == 'MyString'");
    String value = "MyString123";
    validator.validate(value, new ModelValidatorContext(new StandardEvaluationContext()));
}
Also used : StandardEvaluationContext(org.springframework.expression.spel.support.StandardEvaluationContext) ModelValidatorContext(org.ow2.proactive.scheduler.common.job.factories.spi.model.ModelValidatorContext) Test(org.junit.Test)

Example 4 with ValidationException

use of org.ow2.proactive.scheduler.common.job.factories.spi.model.exceptions.ValidationException in project scheduling by ow2-proactive.

the class SpelValidatorTest method testSpelOKUpdateJobVariableWhenEmptyOK.

@Test
public void testSpelOKUpdateJobVariableWhenEmptyOK() throws ValidationException, UserException {
    SpelValidator validator = new SpelValidator("#value == 'MyString' ? (variables['var4'] == null ? (variables['var4'] = 'toto1') instanceof T(String) : true) : false");
    String value = "MyString";
    ModelValidatorContext context = new ModelValidatorContext(createJob());
    Assert.assertEquals(value, validator.validate(value, context));
    Assert.assertEquals("toto1", context.getSpELVariables().getVariables().get("var4"));
}
Also used : ModelValidatorContext(org.ow2.proactive.scheduler.common.job.factories.spi.model.ModelValidatorContext) Test(org.junit.Test)

Example 5 with ValidationException

use of org.ow2.proactive.scheduler.common.job.factories.spi.model.exceptions.ValidationException in project scheduling by ow2-proactive.

the class SpelValidatorTest method testSpelOKUpdateJobVariableWhenEmptyKO.

@Test
public void testSpelOKUpdateJobVariableWhenEmptyKO() throws ValidationException, UserException {
    SpelValidator validator = new SpelValidator("#value == 'MyString' ? (variables['var2'] == null ? (variables['var2'] = 'toto1') instanceof T(String) : true) : false");
    String value = "MyString";
    ModelValidatorContext context = new ModelValidatorContext(createJob());
    Assert.assertEquals(value, validator.validate(value, context));
    Assert.assertEquals("value2", context.getSpELVariables().getVariables().get("var2"));
}
Also used : ModelValidatorContext(org.ow2.proactive.scheduler.common.job.factories.spi.model.ModelValidatorContext) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)8 ModelValidatorContext (org.ow2.proactive.scheduler.common.job.factories.spi.model.ModelValidatorContext)8 ValidationException (org.ow2.proactive.scheduler.common.job.factories.spi.model.exceptions.ValidationException)3 PatternSyntaxException (java.util.regex.PatternSyntaxException)2 UserException (org.ow2.proactive.scheduler.common.exception.UserException)2 StandardEvaluationContext (org.springframework.expression.spel.support.StandardEvaluationContext)2 EvaluationException (org.springframework.expression.EvaluationException)1