Author: fmui
Date: Wed Dec 17 09:29:30 2014
New Revision: 1646182

URL: http://svn.apache.org/r1646182
Log:
CMIS-875: TCK versioning test improvements

Modified:
    
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/UpdateSmokeTest.java
    
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningSmokeTest.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=1646182&r1=1646181&r2=1646182&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
 Wed Dec 17 09:29:30 2014
@@ -143,6 +143,12 @@ public class UpdateSmokeTest extends Abs
         f = createResult(FAILURE, "Folder name doesn't match updated value!");
         addResult(assertEquals(FOLDER_NAME2, folder.getName(), null, f));
 
+        // update again with the same name
+        folder.rename(FOLDER_NAME2, true);
+        
+        f = createResult(FAILURE, "Folder name doesn't match updated value!");
+        addResult(assertEquals(FOLDER_NAME2, folder.getName(), null, f));
+        
         deleteObject(folder);
     }
 }

Modified: 
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningSmokeTest.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/versioning/VersioningSmokeTest.java?rev=1646182&r1=1646181&r2=1646182&view=diff
==============================================================================
--- 
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningSmokeTest.java
 (original)
+++ 
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningSmokeTest.java
 Wed Dec 17 09:29:30 2014
@@ -23,15 +23,23 @@ import static org.apache.chemistry.openc
 import static org.apache.chemistry.opencmis.tck.CmisTestResultStatus.SKIPPED;
 import static org.apache.chemistry.opencmis.tck.CmisTestResultStatus.WARNING;
 
+import java.io.ByteArrayInputStream;
+import java.math.BigInteger;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.chemistry.opencmis.client.api.Document;
 import org.apache.chemistry.opencmis.client.api.Folder;
 import org.apache.chemistry.opencmis.client.api.ObjectId;
+import org.apache.chemistry.opencmis.client.api.Property;
 import org.apache.chemistry.opencmis.client.api.Session;
+import org.apache.chemistry.opencmis.commons.data.ContentStream;
 import 
org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
+import org.apache.chemistry.opencmis.commons.enums.Updatability;
+import org.apache.chemistry.opencmis.commons.impl.IOUtils;
+import 
org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
 import org.apache.chemistry.opencmis.tck.CmisTestResult;
 import org.apache.chemistry.opencmis.tck.impl.AbstractSessionTest;
 import org.apache.chemistry.opencmis.tck.impl.CmisTestResultImpl;
@@ -72,6 +80,13 @@ public class VersioningSmokeTest extends
                 propertiesToCheck[i++] = propId;
             }
 
+            Map<String, Object> writableProperties = new HashMap<String, 
Object>();
+            for (Property<?> property : doc.getProperties()) {
+                if (property.getDefinition().getUpdatability() == 
Updatability.READWRITE) {
+                    writableProperties.put(property.getId(), 
property.getValue());
+                }
+            }
+
             // check out
             ObjectId pwcId = doc.checkOut();
             Document pwc = (Document) session.getObject(pwcId, 
SELECT_ALL_NO_CACHE_OC);
@@ -134,6 +149,64 @@ public class VersioningSmokeTest extends
             // check version series
             addResult(checkVersionSeries(session, versions, propertiesToCheck, 
"Test version series after check in"));
 
+            // check out again
+            pwcId = doc.checkOut();
+            pwc = (Document) session.getObject(pwcId, SELECT_ALL_NO_CACHE_OC);
+
+            addResult(checkObject(session, pwc, getAllProperties(pwc), "PWC 
spec compliance - test 3"));
+
+            checkCheckedOut(pwc);
+
+            // check in giving back all updateable properties
+            ObjectId thirdVersionId = pwc.checkIn(true, writableProperties, 
null, "Test Version 3");
+            Document thirdVersion = (Document) 
session.getObject(thirdVersionId, SELECT_ALL_NO_CACHE_OC);
+
+            addResult(checkObject(session, thirdVersion, 
getAllProperties(thirdVersion), "New version compliance"));
+
+            // check out again
+            pwcId = doc.checkOut();
+            pwc = (Document) session.getObject(pwcId, SELECT_ALL_NO_CACHE_OC);
+
+            addResult(checkObject(session, pwc, getAllProperties(pwc), "PWC 
spec compliance - test 4"));
+
+            checkCheckedOut(pwc);
+
+            // check in giving a new content stream
+            String fourthContent = "new content";
+            byte[] fourthContentBytes = IOUtils.toUTF8Bytes(fourthContent);
+            ContentStream fourthContentStream = new 
ContentStreamImpl("version4",
+                    BigInteger.valueOf(fourthContentBytes.length), 
"text/plain", new ByteArrayInputStream(
+                            fourthContentBytes));
+
+            ObjectId fourthVersionId = pwc.checkIn(true, null, 
fourthContentStream, "Test Version 5");
+            Document fourthVersion = (Document) 
session.getObject(fourthVersionId, SELECT_ALL_NO_CACHE_OC);
+
+            addResult(checkObject(session, fourthVersion, 
getAllProperties(fourthVersion), "New version compliance"));
+
+            checkCheckedIn(fourthVersion);
+
+            // check out again
+            pwcId = doc.checkOut();
+            pwc = (Document) session.getObject(pwcId, SELECT_ALL_NO_CACHE_OC);
+
+            addResult(checkObject(session, pwc, getAllProperties(pwc), "PWC 
spec compliance - test 5"));
+
+            checkCheckedOut(pwc);
+            
+            // check in giving properties and a new content stream
+            String fifthContent = "brand-new content";
+            byte[] fifthContentBytes = IOUtils.toUTF8Bytes(fifthContent);
+            ContentStream fifthContentStream = new 
ContentStreamImpl("version5",
+                    BigInteger.valueOf(fifthContentBytes.length), 
"text/plain", new ByteArrayInputStream(
+                            fifthContentBytes));
+
+            ObjectId fifthVersionId = pwc.checkIn(true, writableProperties, 
fifthContentStream, "Test Version 5");
+            Document fifthVersion = (Document) 
session.getObject(fifthVersionId, SELECT_ALL_NO_CACHE_OC);
+
+            addResult(checkObject(session, fifthVersion, 
getAllProperties(fifthVersion), "New version compliance"));
+
+            checkCheckedIn(fifthVersion);
+
             // remove the document
             deleteObject(doc);
         } finally {


Reply via email to