@Override public void run(Session session) { if (supportsQuery(session) && !isFulltextOnly(session)) { if (Boolean.TRUE.equals(session.getRootFolder().getType().isQueryable())) { queryById(session); queryByDate(session); } else { addResult(createResult(SKIPPED, "Root folder type (" + session.getRootFolder().getType().getId() + ") is not queryable. Test Skipped!")); } } else { addResult(createResult(SKIPPED, "Metadata query not supported. Test Skipped!")); } }
public void runFolderQuery(Session session, Folder testFolder) { if (!Boolean.TRUE.equals(testFolder.getType().isQueryable())) { addResult(createResult(SKIPPED, "Folder type '" + testFolder.getType().getId() + "' is not queryable. Folder query test skipped!")); return; } CmisTestResult f; QueryStatement[] statements = new QueryStatement[] { session.createQueryStatement("SELECT * FROM ? WHERE ? = ?"), session.createQueryStatement("SELECT * FROM ? WHERE ? IN (?)") }; for (QueryStatement statement : statements) { statement.setType(1, testFolder.getType()); statement.setProperty(2, testFolder.getType().getPropertyDefinitions().get(PropertyIds.OBJECT_ID)); statement.setString(3, testFolder.getId()); addResult(createInfoResult("Folder query: " + statement.toQueryString())); int count = 0; for (QueryResult qr : statement.query(false)) { count++; String objectId = qr.getPropertyValueByQueryName("cmis:objectId"); f = createResult(FAILURE, "Folder query returned unexpected object. Id: " + objectId); addResult(assertEquals(testFolder.getId(), objectId, null, f)); } f = createResult(FAILURE, "Folder query should return exactly one hit, but returned " + count + "."); addResult(assertEquals(1, count, null, f)); } }