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) {
-
-        }
-    }
 }