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/10/17 13:19:00 UTC
svn commit: r1185106 -
/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/SetAndDeleteContentTest.java
Author: fmui
Date: Mon Oct 17 11:19:00 2011
New Revision: 1185106
URL: http://svn.apache.org/viewvc?rev=1185106&view=rev
Log:
TCK: CMIS-451: added a check if setContentStream() created a new version
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/SetAndDeleteContentTest.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/SetAndDeleteContentTest.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/SetAndDeleteContentTest.java?rev=1185106&r1=1185105&r2=1185106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/SetAndDeleteContentTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/SetAndDeleteContentTest.java Mon Oct 17 11:19:00 2011
@@ -26,13 +26,16 @@ import static org.apache.chemistry.openc
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.math.BigInteger;
+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.Session;
import org.apache.chemistry.opencmis.commons.data.ContentStream;
import org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
+import org.apache.chemistry.opencmis.commons.enums.BindingType;
import org.apache.chemistry.opencmis.commons.enums.CapabilityContentStreamUpdates;
import org.apache.chemistry.opencmis.commons.enums.ContentStreamAllowed;
import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
@@ -110,11 +113,47 @@ public class SetAndDeleteContentTest ext
ContentStream contentStream = new ContentStreamImpl(workDoc.getName(),
BigInteger.valueOf(contentBytes.length), "text/plain", new ByteArrayInputStream(contentBytes));
- workDoc.setContentStream(contentStream, true, true);
+ ObjectId newObjectId = workDoc.setContentStream(contentStream, true, true);
+
+ // setContentStream may have created a new version
+ Document contentDoc = workDoc;
+ if (newObjectId != null) {
+ // -> Non AtomPub binding
+ if (!workDoc.getId().equals(newObjectId.getId())) {
+ if (checkedout) {
+ addResult(createResult(FAILURE, "setContentStream() created a new version from a PWC!"));
+ } else {
+ contentDoc = (Document) session.getObject(newObjectId, SELECT_ALL_NO_CACHE_OC);
+ addResult(checkObject(session, contentDoc, getAllProperties(contentDoc),
+ "Version created by setContentStream() compliance"));
+ }
+ }
+ } else {
+ if (getBinding() != BindingType.ATOMPUB) {
+ addResult(createResult(FAILURE, "setContentStream() did not return an object id!"));
+ }
+
+ // -> AtomPub binding or incompliant other binding
+ if (checkedout) {
+ // we cannot check if the repository does the right thing,
+ // but if there is a problem the versioning tests should
+ // catch it
+ } else if (Boolean.TRUE.equals(docType.isVersionable())) {
+ List<Document> versions = workDoc.getAllVersions();
+ if (versions == null || versions.isEmpty()) {
+ addResult(createResult(FAILURE,
+ "setContentStream() created a new version but the version history is empty!"));
+ } else if (!workDoc.getId().equals(versions.get(0).getId())) {
+ contentDoc = (Document) session.getObject(versions.get(0), SELECT_ALL_NO_CACHE_OC);
+ addResult(checkObject(session, contentDoc, getAllProperties(contentDoc),
+ "Version created by setContentStream() compliance"));
+ }
+ }
+ }
// test new content
try {
- String content = getStringFromContentStream(workDoc.getContentStream());
+ String content = getStringFromContentStream(contentDoc.getContentStream());
f = createResult(FAILURE, "Document content doesn't match the content set by setContentStream()!");
addResult(assertEquals(CONTENT2, content, null, f));
} catch (IOException e) {