This project has retired. For details please refer to its
Attic page.
DiscoveryServiceTest xref
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.chemistry.opencmis.inmemory;
20
21 import static org.junit.Assert.assertEquals;
22
23 import java.math.BigInteger;
24 import java.util.ArrayList;
25 import java.util.List;
26
27 import org.apache.chemistry.opencmis.commons.data.ObjectList;
28 import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
29 import org.apache.chemistry.opencmis.inmemory.ObjectServiceTest.ObjectTestTypeSystemCreator;
30 import org.apache.chemistry.opencmis.util.repository.ObjectGenerator;
31 import org.apache.commons.logging.Log;
32 import org.apache.commons.logging.LogFactory;
33 import org.junit.Before;
34 import org.junit.Test;
35
36 public class DiscoveryServiceTest extends AbstractServiceTest {
37
38 private static final Log log = LogFactory.getLog(DiscoveryServiceTest.class);
39 private static final String TEST_FOLDER_TYPE_ID = ObjectServiceTest.TEST_FOLDER_TYPE_ID;
40 private static final String TEST_DOCUMENT_TYPE_ID = ObjectServiceTest.TEST_DOCUMENT_TYPE_ID;
41 private static final String TEST_FOLDER_STRING_PROP_ID = ObjectServiceTest.TEST_FOLDER_STRING_PROP_ID;
42 private static final String TEST_DOCUMENT_STRING_PROP_ID = ObjectServiceTest.TEST_DOCUMENT_STRING_PROP_ID;
43
44 @Override
45 @Before
46 public void setUp() {
47 super.setTypeCreatorClass(ObjectTestTypeSystemCreator.class.getName());
48 super.setUp();
49 }
50
51 @Test
52 public void testQuery() {
53 log.info("starting testQuery() ...");
54
55 ObjectGenerator gen = new ObjectGenerator(fFactory, fNavSvc, fObjSvc, fRepSvc, fRepositoryId,
56 ObjectGenerator.CONTENT_KIND.LoremIpsumText);
57 gen.setNumberOfDocumentsToCreatePerFolder(3);
58 gen.setDocumentTypeId(TEST_DOCUMENT_TYPE_ID);
59 gen.setFolderTypeId(TEST_FOLDER_TYPE_ID);
60
61 List<String> propsToSet = new ArrayList<String>();
62 propsToSet.add(TEST_DOCUMENT_STRING_PROP_ID);
63 gen.setDocumentPropertiesToGenerate(propsToSet);
64
65 propsToSet = new ArrayList<String>();
66 propsToSet.add(TEST_FOLDER_STRING_PROP_ID);
67 gen.setFolderPropertiesToGenerate(propsToSet);
68
69 gen.createFolderHierachy(2, 2, fRootFolderId);
70
71 Boolean searchAllVersions = Boolean.FALSE;
72 Boolean includeAllowableActions = Boolean.FALSE;
73 IncludeRelationships includeRelationships = IncludeRelationships.NONE;
74 String renditionFilter = null;
75 BigInteger maxItems = null;
76 BigInteger skipCount = null;
77
78 String statement = "SELECT * FROM " + TEST_DOCUMENT_TYPE_ID + " WHERE " + TEST_DOCUMENT_STRING_PROP_ID + "='My Doc StringProperty 1'";
79 ObjectList res = fDiscSvc.query(fRepositoryId, statement, searchAllVersions, includeAllowableActions,
80 includeRelationships, renditionFilter, maxItems, skipCount, null);
81 assertEquals(1, res.getObjects().size());
82
83 statement = "SELECT " + TEST_DOCUMENT_STRING_PROP_ID + " FROM " + TEST_DOCUMENT_TYPE_ID + " WHERE " + TEST_DOCUMENT_STRING_PROP_ID + "='My Doc StringProperty 1'";
84 res = fDiscSvc.query(fRepositoryId, statement, searchAllVersions, includeAllowableActions,
85 includeRelationships, renditionFilter, maxItems, skipCount, null);
86 assertEquals(1, res.getObjects().size());
87 assertEquals(1, res.getObjects().get(0).getProperties().getProperties().size());
88
89 statement = "SELECT * FROM cmis:folder";
90 res = fDiscSvc.query(fRepositoryId, statement, searchAllVersions, includeAllowableActions,
91 includeRelationships, renditionFilter, maxItems, skipCount, null);
92
93 assertEquals(7, res.getObjects().size());
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116 log.info("... testQuery() finished.");
117 }
118
119 @Test
120 public void testQueryPaging() {
121 log.info("starting testQuery() ...");
122
123 String statement;
124 ObjectList res;
125 ObjectGenerator gen = new ObjectGenerator(fFactory, fNavSvc, fObjSvc, fRepSvc, fRepositoryId,
126 ObjectGenerator.CONTENT_KIND.LoremIpsumText);
127 gen.setNumberOfDocumentsToCreatePerFolder(3);
128 gen.setDocumentTypeId(TEST_DOCUMENT_TYPE_ID);
129 gen.setFolderTypeId(TEST_FOLDER_TYPE_ID);
130
131 List<String> propsToSet = new ArrayList<String>();
132 propsToSet.add(TEST_DOCUMENT_STRING_PROP_ID);
133 gen.setDocumentPropertiesToGenerate(propsToSet);
134
135 propsToSet = new ArrayList<String>();
136 propsToSet.add(TEST_FOLDER_STRING_PROP_ID);
137 gen.setFolderPropertiesToGenerate(propsToSet);
138
139 gen.createFolderHierachy(2, 2, fRootFolderId);
140
141 Boolean searchAllVersions = Boolean.FALSE;
142 Boolean includeAllowableActions = Boolean.FALSE;
143 IncludeRelationships includeRelationships = IncludeRelationships.NONE;
144 String renditionFilter = null;
145 BigInteger skipCount = BigInteger.valueOf(0);
146 BigInteger maxItems = BigInteger.valueOf(3);
147
148 int count = 0;
149 boolean hasMoreItems = true;
150 statement = "SELECT * FROM cmis:document";
151 while (hasMoreItems) {
152 res = fDiscSvc.query(fRepositoryId, statement, searchAllVersions, includeAllowableActions,
153 includeRelationships, renditionFilter, maxItems, skipCount, null);
154 hasMoreItems = res.hasMoreItems();
155 assertEquals(3, res.getObjects().size());
156 if (res.getNumItems() != null) {
157 assertEquals(9L, res.getNumItems().longValue());
158 }
159 skipCount = skipCount.add(maxItems);
160 ++count;
161 }
162 assertEquals(3, count);
163 }
164
165 }