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 2010/11/17 10:59:07 UTC
svn commit: r1035966 [3/3] - in /incubator/chemistry/opencmis/trunk:
chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/
chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/j...
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectIT.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectIT.java?rev=1035966&r1=1035965&r2=1035966&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectIT.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectIT.java Wed Nov 17 09:59:05 2010
@@ -20,8 +20,11 @@ package org.apache.chemistry.opencmis.fi
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
@@ -30,12 +33,15 @@ import java.util.UUID;
import org.apache.chemistry.opencmis.client.api.Document;
import org.apache.chemistry.opencmis.client.api.ObjectId;
+import org.apache.chemistry.opencmis.client.api.OperationContext;
import org.apache.chemistry.opencmis.client.api.Property;
+import org.apache.chemistry.opencmis.client.api.TransientDocument;
import org.apache.chemistry.opencmis.commons.PropertyIds;
import org.apache.chemistry.opencmis.commons.data.ContentStream;
import org.apache.chemistry.opencmis.commons.enums.VersioningState;
import org.apache.chemistry.opencmis.commons.exceptions.CmisContentAlreadyExistsException;
import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
import org.junit.Ignore;
import org.junit.Test;
@@ -109,7 +115,7 @@ public abstract class AbstractWriteObjec
Document doc = (Document) this.session.getObject(id);
assertNotNull(doc);
- final int size = 1 * 1024 * 1024 * 1024; // 2GB
+ final int size = 1 * 1024 * 1024 * 1024; // 1GB
InputStream in = new InputStream() {
@@ -206,9 +212,10 @@ public abstract class AbstractWriteObjec
Document document = (Document) this.session.getObjectByPath(path);
assertNotNull("Document not found: " + path, document);
- document.setProperty(PropertyIds.NAME, "Neuer Name");
- document.updateProperties();
- assertEquals("Neuer Name", document.getName());
+ // TODO: adapt test to refactored interface
+ // document.setProperty(PropertyIds.NAME, "Neuer Name");
+ // document.updateProperties();
+ // assertEquals("Neuer Name", document.getName());
}
@Test
@@ -421,4 +428,145 @@ public abstract class AbstractWriteObjec
String content3 = this.getContentAsString(doc.getContentStream());
assertEquals(content2, content3);
}
+
+ @Test
+ public void transientUpdate() throws Exception {
+ ObjectId parentId = this.session.createObjectId(this.fixture.getTestRootId());
+ String filename1 = UUID.randomUUID().toString();
+ String typeId = FixtureData.DOCUMENT_TYPE_ID.value();
+
+ Map<String, Object> properties = new HashMap<String, Object>();
+ properties.put(PropertyIds.NAME, filename1);
+ properties.put(PropertyIds.OBJECT_TYPE_ID, typeId);
+
+ String mimetype = "text/html; charset=UTF-8";
+ String content1 = "Im Walde rauscht ein Wasserfall. Wenn's nicht mehr rauscht ist's Wasser all.";
+
+ byte[] buf1 = content1.getBytes("UTF-8");
+ ByteArrayInputStream in1 = new ByteArrayInputStream(buf1);
+ ContentStream contentStream1 = this.session.getObjectFactory().createContentStream(filename1, buf1.length,
+ mimetype, in1);
+ assertNotNull(contentStream1);
+
+ ObjectId id = this.session.createDocument(properties, parentId, contentStream1, VersioningState.NONE);
+ assertNotNull(id);
+
+ // prepare new non-cache operation context
+ OperationContext oc = this.session.createOperationContext();
+ oc.setFilterString("*");
+ oc.setCacheEnabled(false);
+
+ // set new name and save
+ Document doc2 = (Document) this.session.getObject(id, oc);
+ TransientDocument tdoc2 = doc2.getTransientDocument();
+
+ assertEquals(filename1, tdoc2.getName());
+
+ ContentStream cs2 = tdoc2.getContentStream();
+ assertNotNull(cs2);
+ assertContent(buf1, readContent(cs2));
+
+ String filename2 = UUID.randomUUID().toString();
+ tdoc2.setName(filename2);
+ assertEquals(filename2, tdoc2.getName());
+
+ ObjectId id2 = tdoc2.save();
+ assertNotNull(id2);
+
+ // set new content and save
+ Document doc3 = (Document) this.session.getObject(id2, oc);
+ TransientDocument tdoc3 = doc3.getTransientDocument();
+
+ assertEquals(filename2, tdoc3.getName());
+
+ ContentStream cs3 = tdoc3.getContentStream();
+ assertNotNull(cs3);
+ assertContent(buf1, readContent(cs3));
+
+ String content3 = "Es rauscht noch.";
+
+ byte[] buf3 = content3.getBytes("UTF-8");
+ ByteArrayInputStream in3 = new ByteArrayInputStream(buf3);
+ ContentStream contentStream3 = this.session.getObjectFactory().createContentStream(tdoc3.getName(),
+ buf3.length, mimetype, in3);
+ assertNotNull(contentStream3);
+
+ tdoc3.setContentStream(contentStream3, true);
+
+ ObjectId id3 = tdoc3.save();
+ assertNotNull(id3);
+
+ // set new name, delete content and save
+ Document doc4 = (Document) this.session.getObject(id3, oc);
+ TransientDocument tdoc4 = doc4.getTransientDocument();
+
+ assertEquals(tdoc3.getName(), tdoc4.getName());
+
+ ContentStream cs4 = tdoc4.getContentStream();
+ assertNotNull(cs4);
+ assertContent(buf3, readContent(cs4));
+
+ String filename4 = UUID.randomUUID().toString();
+ tdoc4.setName(filename4);
+ assertEquals(filename4, tdoc4.getName());
+
+ tdoc4.deleteContentStream();
+
+ ObjectId id4 = tdoc4.save();
+ assertNotNull(id4);
+
+ // delete object
+ Document doc5 = (Document) this.session.getObject(id4, oc);
+ TransientDocument tdoc5 = doc5.getTransientDocument();
+
+ assertEquals(filename4, tdoc5.getName());
+
+ ContentStream cs5 = tdoc4.getContentStream();
+ assertNull(cs5);
+
+ assertEquals(false, tdoc5.isMarkedForDelete());
+
+ tdoc5.delete(true);
+
+ assertEquals(true, tdoc5.isMarkedForDelete());
+
+ ObjectId id5 = tdoc5.save();
+ assertNull(id5);
+
+ // check
+ try {
+ this.session.getObject(id4, oc);
+ fail("CmisObjectNotFoundException expected!");
+ }
+ catch (CmisObjectNotFoundException e) {
+ // expected
+ }
+ }
+
+ private byte[] readContent(ContentStream contentStream) throws Exception {
+ assertNotNull(contentStream);
+ assertNotNull(contentStream.getStream());
+
+ InputStream stream = contentStream.getStream();
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ byte[] buffer = new byte[4096];
+ int b;
+ while ((b = stream.read(buffer)) > -1) {
+ baos.write(buffer, 0, b);
+ }
+
+ return baos.toByteArray();
+ }
+
+ private void assertContent(byte[] expected, byte[] actual) {
+ assertNotNull(expected);
+ assertNotNull(actual);
+
+ assertEquals("Content size:", expected.length, actual.length);
+
+ for (int i = 0; i < expected.length; i++) {
+ assertEquals("Content not equal.", expected[i], actual[i]);
+ }
+ }
}
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectRelationIT.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectRelationIT.java?rev=1035966&r1=1035965&r2=1035966&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectRelationIT.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectRelationIT.java Wed Nov 17 09:59:05 2010
@@ -56,8 +56,8 @@ public abstract class AbstractWriteObjec
ObjectId id = this.session.createRelationship(properties);
ObjectType ot = document1.getType();
- ItemIterable<Relationship> relations = document1.getRelationships(true, RelationshipDirection.EITHER, ot,
- this.session.getDefaultContext());
+ ItemIterable<Relationship> relations = session.getRelationships(document1, true, RelationshipDirection.EITHER,
+ ot, this.session.getDefaultContext());
for (Relationship r : relations) {
assertNotNull(r);
assertEquals(id, r.getId());
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/misc/AbstractReadOnlyCreateSessionIT.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/misc/AbstractReadOnlyCreateSessionIT.java?rev=1035966&r1=1035965&r2=1035966&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/misc/AbstractReadOnlyCreateSessionIT.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/misc/AbstractReadOnlyCreateSessionIT.java Wed Nov 17 09:59:05 2010
@@ -23,8 +23,6 @@ import java.util.Hashtable;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.client.api.SessionFactory;
import org.apache.chemistry.opencmis.commons.SessionParameter;
-import org.apache.chemistry.opencmis.commons.enums.SessionType;
-import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
import org.apache.chemistry.opencmis.fit.runtime.Fixture;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -58,8 +56,8 @@ public abstract class AbstractReadOnlyCr
public void starting(FrameworkMethod method) {
super.starting(method);
- AbstractReadOnlyCreateSessionIT.this.fixture.logTestClassContext(AbstractReadOnlyCreateSessionIT.this
- .getClass(), method);
+ AbstractReadOnlyCreateSessionIT.this.fixture.logTestClassContext(
+ AbstractReadOnlyCreateSessionIT.this.getClass(), method);
}
};
@@ -77,36 +75,8 @@ public abstract class AbstractReadOnlyCr
SessionFactory factory = this.fixture.getSessionFactory();
Hashtable<String, String> parameter = new Hashtable<String, String>(this.fixture.getParamter());
- parameter.remove(SessionParameter.SESSION_TYPE);
Session s = factory.createSession(parameter);
Assert.assertNotNull(s);
}
-
- @Test
- public void createPersistentSession() {
- SessionFactory factory = this.fixture.getSessionFactory();
-
- Hashtable<String, String> parameter = new Hashtable<String, String>(this.fixture.getParamter());
- parameter.put(SessionParameter.SESSION_TYPE, SessionType.PERSISTENT.value());
-
- Session s = factory.createSession(parameter);
- Assert.assertNotNull(s);
- }
-
- @Test
- public void createTransientSession() {
- SessionFactory factory = this.fixture.getSessionFactory();
-
- Hashtable<String, String> parameter = new Hashtable<String, String>(this.fixture.getParamter());
- parameter.put(SessionParameter.SESSION_TYPE, SessionType.TRANSIENT.value());
-
- try {
- @SuppressWarnings("unused")
- Session s = factory.createSession(parameter);
- Assert.fail("CmisNotSupportedException expected, because Transient Session is not supported yet.");
- } catch (CmisNotSupportedException e) {
-
- }
- }
}