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 2011/09/05 15:20:45 UTC

svn commit: r1165272 - /chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/UpdateSmokeTest.java

Author: fmui
Date: Mon Sep  5 13:20:44 2011
New Revision: 1165272

URL: http://svn.apache.org/viewvc?rev=1165272&view=rev
Log:
TCK: changed update properties test to checkout the document if necessary

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/UpdateSmokeTest.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/UpdateSmokeTest.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/tests/crud/UpdateSmokeTest.java?rev=1165272&r1=1165271&r2=1165272&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/UpdateSmokeTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/UpdateSmokeTest.java Mon Sep  5 13:20:44 2011
@@ -28,6 +28,9 @@ import org.apache.chemistry.opencmis.cli
 import org.apache.chemistry.opencmis.client.api.ObjectId;
 import org.apache.chemistry.opencmis.client.api.Session;
 import org.apache.chemistry.opencmis.commons.PropertyIds;
+import org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
+import org.apache.chemistry.opencmis.commons.enums.Updatability;
 import org.apache.chemistry.opencmis.tck.CmisTestResult;
 import org.apache.chemistry.opencmis.tck.impl.AbstractSessionTest;
 
@@ -56,15 +59,25 @@ public class UpdateSmokeTest extends Abs
 
             // create document
             Document doc1 = createDocument(session, testFolder, NAME1, "rename me!");
+            Document workDoc = doc1;
 
             f = createResult(FAILURE, "Document name doesn't match with given name!");
             addResult(assertEquals(NAME1, doc1.getName(), null, f));
 
+            // test if check out is required
+            boolean checkedout = false;
+            DocumentTypeDefinition type = (DocumentTypeDefinition) doc1.getType();
+            PropertyDefinition<?> namePropDef = type.getPropertyDefinitions().get(PropertyIds.NAME);
+            if (namePropDef.getUpdatability() == Updatability.WHENCHECKEDOUT) {
+                workDoc = (Document) session.getObject(doc1.checkOut(), SELECT_ALL_NO_CACHE_OC);
+                checkedout = true;
+            }
+
             // update
             Map<String, Object> properties = new HashMap<String, Object>();
             properties.put(PropertyIds.NAME, NAME2);
 
-            ObjectId newId = doc1.updateProperties(properties, false);
+            ObjectId newId = workDoc.updateProperties(properties, false);
             Document doc2 = (Document) session.getObject(newId, SELECT_ALL_NO_CACHE_OC);
 
             addResult(checkObject(session, doc2, getAllProperties(doc2), "Updated document compliance"));
@@ -72,8 +85,16 @@ public class UpdateSmokeTest extends Abs
             f = createResult(FAILURE, "Document name doesn't match updated value!");
             addResult(assertEquals(NAME2, doc2.getName(), null, f));
 
+            // cancel a possible check out
+            if (checkedout) {
+                workDoc.cancelCheckOut();
+            }
+
             // delete
             deleteObject(doc2);
+            if (!doc1.getId().equals(doc2.getId())) {
+                deleteObject(doc1);
+            }
         } finally {
             // clean up
             deleteTestFolder();