Author: sklevenz
Date: Wed Dec  1 15:40:28 2010
New Revision: 1041059

URL: http://svn.apache.org/viewvc?rev=1041059&view=rev
Log:
Spend some FIT tests for testing transient API.

Added:
    
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractTransientObjectIT.java
    
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/atom/TransientObjectAtomPubIT.java
    
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/webservices/TransientObjectWebServicesIT.java
Modified:
    
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectIT.java

Added: 
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractTransientObjectIT.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/AbstractTransientObjectIT.java?rev=1041059&view=auto
==============================================================================
--- 
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractTransientObjectIT.java
 (added)
+++ 
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractTransientObjectIT.java
 Wed Dec  1 15:40:28 2010
@@ -0,0 +1,253 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.chemistry.opencmis.fit.runtime;
+
+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.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.chemistry.opencmis.client.api.CmisObject;
+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.OperationContext;
+import org.apache.chemistry.opencmis.client.api.TransientDocument;
+import org.apache.chemistry.opencmis.client.api.TransientFolder;
+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.CmisObjectNotFoundException;
+import org.junit.Test;
+
+public abstract class AbstractTransientObjectIT extends AbstractSessionTest {
+       @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
+               }
+       }
+
+       @Test
+       public void transientFolderSessionCheck() throws 
UnsupportedEncodingException {
+           String path = "/" + Fixture.TEST_ROOT_FOLDER_NAME + "/" + 
FixtureData.FOLDER1_NAME;
+               Folder folder1 = (Folder) this.session.getObjectByPath(path);
+               assertNotNull("folder not found: " + path, folder1);
+
+               TransientFolder tfolder = folder1.getTransientFolder();
+               assertNotNull(tfolder);
+
+               String newFolderName = UUID.randomUUID().toString();
+               tfolder.setPropertyValue(PropertyIds.NAME, newFolderName);
+               
+               Folder folder2 = (Folder) this.session2.getObjectByPath(path);
+               assertNotNull(folder2);
+               
assertEquals(folder2.getProperty(PropertyIds.NAME).getValueAsString(), 
FixtureData.FOLDER1_NAME.toString());
+               
assertEquals(tfolder.getProperty(PropertyIds.NAME).getValueAsString(), 
newFolderName);
+               
+               tfolder.save();
+
+               ObjectId id = this.session2.createObjectId(tfolder.getId());
+               
+               // prepare new non-cache operation context
+               OperationContext oc = this.session.createOperationContext();
+               oc.setFilterString("*");
+               oc.setCacheEnabled(false);
+               
+               Folder folder3 = (Folder) this.session2.getObject(id, oc);
+               assertNotNull(folder3);
+               
assertEquals(folder3.getProperty(PropertyIds.NAME).getValueAsString(), 
newFolderName);
+       }
+
+       @Test
+       public void transientDocumentSessionCheck() throws 
UnsupportedEncodingException {
+           String path = "/" + Fixture.TEST_ROOT_FOLDER_NAME + "/" + 
FixtureData.DOCUMENT1_NAME;
+               Document document1 = (Document) 
this.session.getObjectByPath(path);
+               assertNotNull("document not found: " + path, document1);
+
+               TransientDocument tdoc = document1.getTransientDocument();
+               assertNotNull(tdoc);
+
+               String newDocName = UUID.randomUUID().toString();
+               tdoc.setPropertyValue(PropertyIds.NAME, newDocName);
+               
+               Document  doc2 = (Document) this.session2.getObjectByPath(path);
+               assertNotNull(doc2);
+               
assertEquals(doc2.getProperty(PropertyIds.NAME).getValueAsString(), 
FixtureData.DOCUMENT1_NAME.toString());
+               
assertEquals(tdoc.getProperty(PropertyIds.NAME).getValueAsString(), newDocName);
+               
+               tdoc.save();
+
+               ObjectId id = this.session2.createObjectId(tdoc.getId());
+               
+               // prepare new non-cache operation context
+               OperationContext oc = this.session.createOperationContext();
+               oc.setFilterString("*");
+               oc.setCacheEnabled(false);
+               
+               Document doc3 = (Document) this.session2.getObject(id, oc);
+               assertNotNull(doc3);
+               
assertEquals(doc3.getProperty(PropertyIds.NAME).getValueAsString(), newDocName);
+       }
+
+       
+       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/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=1041059&r1=1041058&r2=1041059&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 Dec  1 15:40:28 2010
@@ -433,143 +433,4 @@ public abstract class AbstractWriteObjec
         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]);
-        }
-    }
 }

Added: 
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/atom/TransientObjectAtomPubIT.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/atom/TransientObjectAtomPubIT.java?rev=1041059&view=auto
==============================================================================
--- 
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/atom/TransientObjectAtomPubIT.java
 (added)
+++ 
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/atom/TransientObjectAtomPubIT.java
 Wed Dec  1 15:40:28 2010
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.chemistry.opencmis.fit.runtime.atom;
+
+import org.apache.chemistry.opencmis.fit.runtime.AbstractTransientObjectIT;
+import org.apache.chemistry.opencmis.fit.runtime.Fixture;
+
+public class TransientObjectAtomPubIT extends AbstractTransientObjectIT {
+
+       @Override
+       public void initFixture(Fixture fixture) {
+        fixture.enableAtomPub();
+       }
+
+}

Added: 
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/webservices/TransientObjectWebServicesIT.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/webservices/TransientObjectWebServicesIT.java?rev=1041059&view=auto
==============================================================================
--- 
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/webservices/TransientObjectWebServicesIT.java
 (added)
+++ 
incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/webservices/TransientObjectWebServicesIT.java
 Wed Dec  1 15:40:28 2010
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.chemistry.opencmis.fit.runtime.webservices;
+
+import org.apache.chemistry.opencmis.fit.runtime.AbstractTransientObjectIT;
+import org.apache.chemistry.opencmis.fit.runtime.Fixture;
+
+public class TransientObjectWebServicesIT extends AbstractTransientObjectIT {
+
+       @Override
+       public void initFixture(Fixture fixture) {
+               fixture.enableWebServices();
+       }
+
+}


Reply via email to