use of com.qwest.mbeng.XmlPath in project mdw-designer by CenturyLinkCloud.
the class GroovyTestCaseScript method xpath.
/**
* Matches according to MDW XPath.
*/
public Closure<Boolean> xpath(final String condition) throws TestException {
return new Closure<Boolean>(this, this) {
@Override
public Boolean call(Object request) {
try {
XmlPath xpath = new XmlPath(condition);
String v = xpath.evaluate(TestDataFilter.parseRequest(request.toString()));
return v != null;
} catch (MbengException ex) {
getTestCaseRun().log.println("Failed to parse request as XML/JSON. Stub response: " + AdapterActivity.MAKE_ACTUAL_CALL);
return false;
}
}
};
}
use of com.qwest.mbeng.XmlPath in project mdw-designer by CenturyLinkCloud.
the class TestCaseRun method stubMatch.
protected boolean stubMatch(String condition, MbengDocument reqdoc) {
try {
if (condition.contains("$")) {
MbengRuleSet ruleset = new MyRuleSet("stub_condition", MbengRuleSet.RULESET_COND);
ruleset.parse(condition);
MbengRuntime runtime = new MbengRuntime(ruleset, new StreamLogger(System.out));
runtime.bind("$", reqdoc);
return runtime.verify();
} else {
XmlPath xpath = new XmlPath(condition);
String v = xpath.evaluate(reqdoc);
return v != null;
}
} catch (MbengException e) {
log.println("Exception in evaluating condition in stub: " + e.getMessage());
return false;
}
}
use of com.qwest.mbeng.XmlPath in project mdw-designer by CenturyLinkCloud.
the class TestDataFilter method evaluateExpression.
private String evaluateExpression(String exp, MbengDocument refdata) {
try {
if (exp.startsWith("/")) {
// assuming XPath expression
XmlPath xpathobj = new XmlPath(exp);
MbengNode node = xpathobj.findNode(refdata);
return node == null ? null : node.getValue();
} else {
MbengRuleSet ruleset = new MyRuleSet("filter_exp", MbengRuleSet.RULESET_EXPR);
ruleset.parse(exp);
MbengRuntime runtime = new MbengRuntime(ruleset, new StreamLogger(System.out));
runtime.bind("$", refdata);
return runtime.evaluate();
}
} catch (MbengException e) {
log.println("Exception in evaluating expression in test data filter " + exp + ": " + e.getMessage());
return null;
}
}
Aggregations