Details
-
Improvement
-
Resolution: Outdated
-
Minor
-
None
-
4.5
-
None
Description
Current mock API doesn't implement real Query, but instead advices anyone to override QueryResult if necessary. Overriding is however non trivial and requires lots of boiler plate code:
final MockSession websiteSession = (MockSession) getCtx().getJCRSession(workspaceName);
websiteSession.setWorkspace(new MockWorkspace(workspaceName) {
@Override
public QueryManager getQueryManager() {
return new MockQueryManager(websiteSession) {
@Override
public Query createQuery(final String statement, final String language) throws InvalidQueryException, RepositoryException {
return new MockQuery(websiteSession, statement, language) {
@Override
public QueryResult execute() throws InvalidQueryException, RepositoryException {
return new MockQueryResult(websiteSession, statement, language) {
@Override
public NodeIterator getNodes() throws RepositoryException {
return websiteSession.getNode("/demo-project/news-and-events/news-overview").getNodes("news*");
}
};
}
};
}
};
}
});
There should be a simpler way.
Checklists
Acceptance criteria