我需要测试谓词对象是否与各种表达式语言的交换匹配。我需要知道我需要设置什么交换值才能验证谓词。
public void test() {
String expression="//orders/value>10"';
CamelContext context = new DefaultCamelContext();
Predicate predicate=new JXpathExpression(expression,boolean.class);
Exchange exchange = new DefaultExchange(context);
Message in = exchange.getIn();
in.setBody(""); // how i need to set the message in exchange in order to evaluate it against predicate
exchange.setIn(in);
boolean check=predicate.matches(exchange);
}
对于JXPath,当我使用JXpath[//orders/value>10]
打印时,谓词对象包含predicate.toString()
。
如何设置交换以便验证此表达式?
答案 0 :(得分:2)
JXPath适用于java对象。因此,您必须在邮件正文中设置合适的对象。 如果你在那里设置的对象有o.getOrders()。getValue()并返回一个数值> 10然后谓词应该评估为真。