1 package org.alfresco.jcr.query; 2 3 import javax.jcr.Node; 4 import javax.jcr.NodeIterator; 5 import javax.jcr.Property; 6 import javax.jcr.Session; 7 import javax.jcr.SimpleCredentials; 8 import javax.jcr.Value; 9 import javax.jcr.query.Query; 10 import javax.jcr.query.QueryManager; 11 import javax.jcr.query.QueryResult; 12 import javax.jcr.query.Row; 13 import javax.jcr.query.RowIterator; 14 15 import org.alfresco.jcr.test.BaseJCRTest; 16 17 public class QueryManagerImplTest extends BaseJCRTest 18 { 19 20 protected Session superuserSession; 21 22 @Override 23 protected void setUp() throws Exception 24 { 25 super.setUp(); 26 27 SimpleCredentials superuser = new SimpleCredentials("superuser", "".toCharArray()); 28 superuserSession = repository.login(superuser, getWorkspace()); 29 } 30 31 @Override 32 protected void tearDown() throws Exception 33 { 34 superuserSession.logout(); 35 super.tearDown(); 36 } 37 38 39 public void testQuery() 40 throws Exception 41 { 42 QueryManager queryMgr = superuserSession.getWorkspace().getQueryManager(); 43 String [] languages = queryMgr.getSupportedQueryLanguages(); 44 assertEquals(1, languages.length); 45 assertEquals(Query.XPATH, languages[0]); 46 47 Query query = queryMgr.createQuery("//*", Query.XPATH); 48 QueryResult result = query.execute(); 49 String [] columnNames = result.getColumnNames(); 50 51 int rowCnt = 0; 53 RowIterator rowIterator = result.getRows(); 54 while(rowIterator.hasNext()) 55 { 56 Row row = rowIterator.nextRow(); 57 for (String columnName : columnNames) 58 { 59 Value value = row.getValue(columnName); 60 if (value != null) 61 { 62 String strValue = value.getString(); 63 assertNotNull(strValue); 64 } 65 } 66 rowCnt++; 67 } 68 69 int nodeCnt = 0; 71 NodeIterator nodeIterator = result.getNodes(); 72 while(nodeIterator.hasNext()) 73 { 74 Node node = nodeIterator.nextNode(); 75 Property property = node.getProperty("sys:node-uuid"); 76 Value value = property.getValue(); 77 String uuid = value.getString(); 78 assertNotNull(uuid); 79 nodeCnt++; 80 } 81 82 assertEquals(rowCnt, nodeCnt); 84 } 85 86 87 } 88 | Popular Tags |