package org.alien4cloud.test.util;
import org.junit.Assert;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
public class SPELUtils {
public static Object evaluateExpression(EvaluationContext context, String spelExpression) {
ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression(spelExpression);
return exp.getValue(context);
}
public static void assertSpelResult(Object expected, Object result, String spelExpression) {
if ("null".equals(expected)) {
Assert.assertNull(String.format("The SPEL expression [%s] result should be null", spelExpression), result);
} else {
Assert.assertNotNull(String.format("The SPEL expression [%s] result should not be null", spelExpression), result);
Assert.assertEquals(String.format("The SPEL expression [%s] should return [%s]", spelExpression, expected), expected, result);
}
}
public static void evaluateAndAssertExpression(EvaluationContext context, String spelExpression, Object expected) {
Object result = evaluateExpression(context, spelExpression);
assertSpelResult(expected, result, spelExpression);
}
}