You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2012/11/21 20:28:41 UTC

svn commit: r1412238 - /chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java

Author: fmui
Date: Wed Nov 21 19:28:40 2012
New Revision: 1412238

URL: http://svn.apache.org/viewvc?rev=1412238&view=rev
Log:
CMIS-606: TCK: check allowable actions before getting the parents of an object

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java?rev=1412238&r1=1412237&r2=1412238&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java Wed Nov 21 19:28:40 2012
@@ -1664,25 +1664,33 @@ public abstract class AbstractSessionTes
 
             if (child instanceof FileableCmisObject) {
                 FileableCmisObject fileableChild = (FileableCmisObject) child;
-                List<Folder> parents = fileableChild.getParents();
 
-                f = createResult(FAILURE, "Child has no parents! Id: " + child.getId());
-                addResult(results, assertIsTrue(parents.size() > 0, null, f));
+                Set<Action> actions = fileableChild.getAllowableActions().getAllowableActions();
+                boolean hasObjectParentsAction = actions.contains(Action.CAN_GET_OBJECT_PARENTS);
+                boolean hasFolderParentAction = actions.contains(Action.CAN_GET_FOLDER_PARENT);
 
-                boolean foundParent = false;
-                for (Folder parent : parents) {
-                    if (parent == null) {
-                        f = createResult(FAILURE, "One of childs parents is null! Id: " + child.getId());
+                if (hasObjectParentsAction || hasFolderParentAction) {
+                    List<Folder> parents = fileableChild.getParents();
+
+                    f = createResult(FAILURE, "Child has no parents! Id: " + child.getId());
+                    addResult(results, assertIsTrue(parents.size() > 0, null, f));
+
+                    boolean foundParent = false;
+                    for (Folder parent : parents) {
+                        if (parent == null) {
+                            f = createResult(FAILURE, "One of childs parents is null! Id: " + child.getId());
+                            addResult(results, assertIsTrue(parents.size() > 0, null, f));
+                        } else if (folder.getId().equals(parent.getId())) {
+                            foundParent = true;
+                            break;
+                        }
+                    }
+
+                    if (!foundParent) {
+                        f = createResult(FAILURE, "Folder is not found in childs parents! Id: " + child.getId());
                         addResult(results, assertIsTrue(parents.size() > 0, null, f));
-                    } else if (folder.getId().equals(parent.getId())) {
-                        foundParent = true;
-                        break;
                     }
-                }
 
-                if (!foundParent) {
-                    f = createResult(FAILURE, "Folder is not found in childs parents! Id: " + child.getId());
-                    addResult(results, assertIsTrue(parents.size() > 0, null, f));
                 }
 
                 // get object by id and compare
@@ -1711,11 +1719,11 @@ public abstract class AbstractSessionTes
                 }
             }
 
-            f = createResult(FAILURE, "Child has no CAN_GET_OBJECT_PARENTS allowable action! Id: " + child.getId());
+            f = createResult(WARNING, "Child has no CAN_GET_OBJECT_PARENTS allowable action! Id: " + child.getId());
             addResult(results, assertAllowableAction(child, Action.CAN_GET_OBJECT_PARENTS, null, f));
 
             if (child instanceof Folder) {
-                f = createResult(FAILURE, "Child has no CAN_GET_FOLDER_PARENT allowable action! Id: " + child.getId());
+                f = createResult(WARNING, "Child has no CAN_GET_FOLDER_PARENT allowable action! Id: " + child.getId());
                 addResult(results, assertAllowableAction(child, Action.CAN_GET_FOLDER_PARENT, null, f));
             }
         }