### Question:
DocumentManagementImpl extends DocumentManagementBase implements DocumentManagement, EntryEvictedListener<DocumentKey, Document> { @Override public ResultCursor<DocumentAccessor> getDocuments(final String pattern, final Properties props) throws BagriException { logger.trace("getDocuments.enter; got pattern: {}; props: {}", pattern, props); final ResultCursorBase<DocumentAccessor> cln = getResultCursor(props); if (cln.isAsynch()) { execPool.execute(new Runnable() { @Override public void run() { try { fetchDocuments(pattern, props, cln); } catch (BagriException ex) { throw new RuntimeException(ex); } cln.finish(); } }); } else { fetchDocuments(pattern, props, cln); } logger.trace("getDocuments.exit; returning: {}", cln); return cln; }  void setRepository(SchemaRepositoryImpl repo); void setCacheContent(boolean cacheContent); void setCacheElements(boolean cacheElements); void setCompressContent(boolean compressContent); void setDocumentIdGenerator(IdGenerator<Long> docGen); void setContentCache(IMap<DocumentKey, Object> cache); void setDocumentCache(IMap<DocumentKey, Document> cache); void setElementCache(IMap<DataKey, Elements> cache); void setHzInstance(HazelcastInstance hzInstance); void setIndexManager(IndexManagementImpl indexManager); void setStatsQueue(BlockingQueue<StatisticsEvent> queue); void setStatsEnabled(boolean enable); void setDistrService(DataDistributionService ddSvc); void setExecPool(ExecutorService execSvc); java.util.Collection<Elements> getDocumentElements(String uri); Document getDocument(DocumentKey docKey); @Override String getDocumentContentType(long docKey); @Override DocumentAccessor getDocument(String uri, Properties props); @Override DocumentAccessor getDocument(long docKey, Properties props); @Override DocumentAccessor getDocument(DocumentKey docKey, Properties props); @Override ResultCursor<DocumentAccessor> getDocuments(final String pattern, final Properties props); String checkDefaultDocumentCollection(Document doc); Map<DocumentKey, Document> createDocument(DocumentKey docKey, String uri, Object content, String srcFormat, Date createdAt, String createdBy,
			long txStart, int[] collections); Document processDocument(Map.Entry<DocumentKey, Document> old, long txId, String uri, String user, Object content, ParseResults pRes, Properties props); @Override DocumentAccessor storeDocument(String uri, T content, Properties props); @Override ResultCursor<DocumentAccessor> storeDocuments(final Map<String, T> documents, final Properties props); @Override DocumentAccessor removeDocument(String uri, Properties props); Object processDocumentRemoval(Map.Entry<DocumentKey, Document> entry, Properties properties, long txStart, Document doc); void cleanDocument(DocumentKey docKey, boolean complete); void evictDocument(DocumentKey docKey, Document doc); void rollbackDocument(DocumentKey docKey); @Override java.util.Collection<String> getCollections(); @Override ResultCursor<DocumentAccessor> removeDocuments(final String pattern, final Properties props); @Override int addDocumentToCollections(String uri, String[] collections); @Override int removeDocumentFromCollections(String uri, String[] collections); int updateDocumentCollections(boolean add, Map.Entry<DocumentKey, Document> entry, String[] collections); @Override void entryEvicted(EntryEvent<DocumentKey, Document> event);  }### Answer:
@Test public void queryDocumentUrisTest() throws Exception { storeSecurityTest(); storeOrderTest(); DocumentManagementImpl dMgr = (DocumentManagementImpl) this.getDocManagement(); Properties props = getDocumentProperties(); ResultCursor<DocumentAccessor> docs = dMgr.getDocuments("uri like security%, txFinish = 0", props); assertEquals(4, docs.size()); docs = dMgr.getDocuments("uri like order%, txFinish = 0", props); assertEquals(2, docs.size()); docs = dMgr.getDocuments("createdBy = guest, txFinish = 0", props); assertEquals(6, uris.size()); docs = dMgr.getDocuments("uri > security16, txFinish = 0", props); assertEquals(3, docs.size()); }