This project has retired. For details please refer to its Attic page.
RepositoryInfoTest xref

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   * http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.chemistry.opencmis.tck.tests.basics;
20  
21  import static org.apache.chemistry.opencmis.tck.CmisTestResultStatus.FAILURE;
22  import static org.apache.chemistry.opencmis.tck.CmisTestResultStatus.OK;
23  import static org.apache.chemistry.opencmis.tck.CmisTestResultStatus.WARNING;
24  
25  import java.util.Map;
26  
27  import org.apache.chemistry.opencmis.client.api.Session;
28  import org.apache.chemistry.opencmis.commons.data.AclCapabilities;
29  import org.apache.chemistry.opencmis.commons.data.RepositoryCapabilities;
30  import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
31  import org.apache.chemistry.opencmis.commons.definitions.PermissionDefinition;
32  import org.apache.chemistry.opencmis.tck.CmisTestResult;
33  import org.apache.chemistry.opencmis.tck.impl.AbstractSessionTest;
34  
35  /**
36   * Repository info test.
37   */
38  public class RepositoryInfoTest extends AbstractSessionTest {
39  
40      @Override
41      public void init(Map<String, String> parameters) {
42          super.init(parameters);
43          setName("Repository Info Test");
44          setDescription("Gets and checks the repository info.");
45      }
46  
47      @Override
48      public void run(Session session) {
49          CmisTestResult success;
50          CmisTestResult failure;
51  
52          RepositoryInfo ri = getRepositoryInfo(session);
53  
54          // id
55          success = createResult(OK, "Repository id: " + ri.getId());
56          failure = createResult(FAILURE, "Repository id is not set!", true);
57          addResult(assertStringNotEmpty(ri.getId(), success, failure));
58  
59          // name
60          failure = createResult(FAILURE, "Repository name is not set!");
61          addResult(assertNotNull(ri.getName(), null, failure));
62  
63          success = createResult(OK, "Repository name: " + ri.getName());
64          failure = createResult(WARNING, "Repository name is empty!");
65          addResult(assertStringNotEmpty(ri.getName(), success, failure));
66  
67          // description
68          failure = createResult(FAILURE, "Repository description is not set!");
69          addResult(assertNotNull(ri.getDescription(), null, failure));
70  
71          success = createResult(OK, "Repository description: " + ri.getDescription());
72          failure = createResult(WARNING, "Repository description is empty!");
73          addResult(assertStringNotEmpty(ri.getDescription(), success, failure));
74  
75          // vendor
76          failure = createResult(FAILURE, "Vendor name is not set!");
77          addResult(assertStringNotEmpty(ri.getVendorName(), null, failure));
78  
79          success = createResult(OK, "Vendor name: " + ri.getVendorName());
80          failure = createResult(WARNING, "Vendor name is empty!");
81          addResult(assertStringNotEmpty(ri.getVendorName(), success, failure));
82  
83          // product name
84          failure = createResult(FAILURE, "Product name is not set!");
85          addResult(assertStringNotEmpty(ri.getProductName(), null, failure));
86  
87          success = createResult(OK, "Product name: " + ri.getProductName());
88          failure = createResult(WARNING, "Product name is empty!");
89          addResult(assertStringNotEmpty(ri.getProductName(), success, failure));
90  
91          // product version
92          failure = createResult(FAILURE, "Product version is not set!");
93          addResult(assertStringNotEmpty(ri.getProductVersion(), null, failure));
94  
95          success = createResult(OK, "Product version: " + ri.getProductVersion());
96          failure = createResult(WARNING, "Product version is empty!");
97          addResult(assertStringNotEmpty(ri.getProductVersion(), success, failure));
98  
99          // CMIS version supported
100         success = createResult(OK, "CMIS Version Supported: " + ri.getCmisVersionSupported());
101         failure = createResult(FAILURE, "CMIS Version Supported is not set!");
102         addResult(assertStringNotEmpty(ri.getCmisVersionSupported(), success, failure));
103 
104         failure = createResult(FAILURE, "CMIS Version Supported is not '1.0'!");
105         addResult(assertEquals("1.0", ri.getCmisVersionSupported(), null, failure));
106 
107         // root folder
108         success = createResult(OK, "Root folder id: " + ri.getRootFolderId());
109         failure = createResult(FAILURE, "Root folder id is not set!");
110         addResult(assertStringNotEmpty(ri.getRootFolderId(), success, failure));
111 
112         // thin client uri
113         success = createResult(OK, "Thin client URI: " + ri.getThinClientUri());
114         failure = createResult(WARNING, "Thin client URI is not set!");
115         addResult(assertStringNotEmpty(ri.getThinClientUri(), success, failure));
116 
117         // principal id anonymous
118         success = createResult(OK, "Principal Id anonymous: " + ri.getPrincipalIdAnonymous());
119         failure = createResult(WARNING, "Principal Id anonymous is not set!");
120         addResult(assertStringNotEmpty(ri.getPrincipalIdAnonymous(), success, failure));
121 
122         // principal id anyone
123         success = createResult(OK, "Principal Id anyone: " + ri.getPrincipalIdAnyone());
124         failure = createResult(WARNING, "Principal Id anyone is not set!");
125         addResult(assertStringNotEmpty(ri.getPrincipalIdAnyone(), success, failure));
126 
127         // latest change log token
128         success = createResult(OK, "Latest change log token: " + ri.getLatestChangeLogToken());
129         failure = createResult(WARNING, "Latest change log token is not set!");
130         addResult(assertStringNotEmpty(ri.getLatestChangeLogToken(), success, failure));
131 
132         // changes incomplete
133         success = createResult(OK, "Changes Incomplete: " + ri.getChangesIncomplete());
134         failure = createResult(WARNING, "Changes Incomplete is not set!");
135         addResult(assertNotNull(ri.getChangesIncomplete(), success, failure));
136 
137         // changes on type
138         success = createResult(OK, "Changes on type: " + ri.getChangesOnType());
139         failure = createResult(WARNING, "Changes on type is not set!");
140         addResult(assertNotNull(ri.getChangesOnType(), success, failure));
141 
142         if (ri.getChangesOnType() != null) {
143             failure = createResult(WARNING, "Changes on type has more than 4 entries!");
144             addResult(assertIsTrue(ri.getChangesOnType().size() < 5, null, failure));
145         }
146 
147         // capabilities
148         if (ri.getCapabilities() == null) {
149             addResult(createResult(FAILURE, "Capabilities are not set!"));
150         } else {
151             RepositoryCapabilities cap = ri.getCapabilities();
152 
153             // ACL capability
154             success = createResult(OK, "ACL capability: " + cap.getAclCapability());
155             failure = createResult(FAILURE, "ACL capability is not set!");
156             addResult(assertNotNull(cap.getAclCapability(), success, failure));
157 
158             // changes capability
159             success = createResult(OK, "Changes capability: " + cap.getChangesCapability());
160             failure = createResult(WARNING, "Changes capability is not set!");
161             addResult(assertNotNull(cap.getChangesCapability(), success, failure));
162 
163             // content stream updates capability
164             success = createResult(OK, "Content stream updates capability: " + cap.getContentStreamUpdatesCapability());
165             failure = createResult(FAILURE, "Content stream updates is not set!");
166             addResult(assertNotNull(cap.getContentStreamUpdatesCapability(), success, failure));
167 
168             // get descendants capability
169             success = createResult(OK, "Get descendants capability: " + cap.isGetDescendantsSupported());
170             failure = createResult(FAILURE, "Get descendants capability is not set!");
171             addResult(assertNotNull(cap.isGetDescendantsSupported(), success, failure));
172 
173             // get folder tree capability
174             success = createResult(OK, "Get folder tree capability: " + cap.isGetFolderTreeSupported());
175             failure = createResult(FAILURE, "Get folder tree capability is not set!");
176             addResult(assertNotNull(cap.isGetFolderTreeSupported(), success, failure));
177 
178             // multifiling capability
179             success = createResult(OK, "Multifiling capability: " + cap.isMultifilingSupported());
180             failure = createResult(FAILURE, "Multifiling capability is not set!");
181             addResult(assertNotNull(cap.isMultifilingSupported(), success, failure));
182 
183             // unfiling capability
184             success = createResult(OK, "Unfiling capability: " + cap.isUnfilingSupported());
185             failure = createResult(FAILURE, "Unfiling capability is not set!");
186             addResult(assertNotNull(cap.isUnfilingSupported(), success, failure));
187 
188             // version specific filing capability
189             success = createResult(OK, "Version specific filing capability: " + cap.isVersionSpecificFilingSupported());
190             failure = createResult(FAILURE, "Version specific filing capability is not set!");
191             addResult(assertNotNull(cap.isVersionSpecificFilingSupported(), success, failure));
192 
193             // query capability
194             success = createResult(OK, "Query capability: " + cap.getQueryCapability());
195             failure = createResult(FAILURE, "Query capability is not set!");
196             addResult(assertNotNull(cap.getQueryCapability(), success, failure));
197 
198             // JOIN capability
199             success = createResult(OK, "JOIN capability: " + cap.getJoinCapability());
200             failure = createResult(FAILURE, "JOIN capability is not set!");
201             addResult(assertNotNull(cap.getJoinCapability(), success, failure));
202 
203             // all versions searchable capability
204             success = createResult(OK, "All versions searchable capability: " + cap.isAllVersionsSearchableSupported());
205             failure = createResult(FAILURE, "All versions searchable capability is not set!");
206             addResult(assertNotNull(cap.isAllVersionsSearchableSupported(), success, failure));
207 
208             // PWC searchable capability
209             success = createResult(OK, "PWC searchable capability: " + cap.isPwcSearchableSupported());
210             failure = createResult(FAILURE, "PWC searchable capability is not set!");
211             addResult(assertNotNull(cap.isPwcSearchableSupported(), success, failure));
212 
213             // PWC updatable capability
214             success = createResult(OK, "PWC updatable capability: " + cap.isPwcUpdatableSupported());
215             failure = createResult(FAILURE, "PWC updatable capability is not set!");
216             addResult(assertNotNull(cap.isPwcUpdatableSupported(), success, failure));
217 
218             // renditions capability
219             success = createResult(OK, "Renditions capability: " + cap.getRenditionsCapability());
220             failure = createResult(FAILURE, "Renditions capability is not set!");
221             addResult(assertNotNull(cap.getRenditionsCapability(), success, failure));
222         }
223 
224         // ACL capabilities
225         if (ri.getAclCapabilities() == null) {
226             addResult(createResult(WARNING, "ACL capabilities are not set!"));
227         } else {
228             AclCapabilities aclCap = ri.getAclCapabilities();
229 
230             // supported permissions
231             success = createResult(OK, "Supported permissions: " + aclCap.getSupportedPermissions());
232             failure = createResult(WARNING, "Supported permissions are not set!");
233             addResult(assertNotNull(aclCap.getSupportedPermissions(), success, failure));
234 
235             // ACL propagation
236             success = createResult(OK, "ACL propagation: " + aclCap.getAclPropagation());
237             failure = createResult(WARNING, "ACL propagation is not set!");
238             addResult(assertNotNull(aclCap.getAclPropagation(), success, failure));
239 
240             // permissions
241             success = createResult(OK, "Permissions: "
242                     + (aclCap.getPermissions() == null ? "?" : aclCap.getPermissions().size()));
243             failure = createResult(FAILURE, "Permissions are not set!");
244             addResult(assertNotNull(aclCap.getPermissions(), success, failure));
245 
246             if (aclCap.getPermissions() != null) {
247                 int i = 0;
248                 for (PermissionDefinition permDef : aclCap.getPermissions()) {
249                     failure = createResult(FAILURE, "Permission #" + i + " is not set!");
250                     addResult(assertNotNull(permDef, null, failure));
251 
252                     if (permDef != null) {
253                         failure = createResult(FAILURE, "Id of permission #" + i + " is not set!");
254                         addResult(assertStringNotEmpty(permDef.getId(), null, failure));
255                     }
256 
257                     i++;
258                 }
259             }
260 
261             // permission mapping
262             success = createResult(OK, "Permission mapping: "
263                     + (aclCap.getPermissionMapping() == null ? "?" : aclCap.getPermissionMapping().size()));
264             failure = createResult(WARNING, "Permission mapping is not set!");
265             addResult(assertNotNull(aclCap.getPermissionMapping(), success, failure));
266         }
267     }
268 }