Author: sklevenz
Date: Mon Mar 22 16:59:27 2010
New Revision: 926185

URL: http://svn.apache.org/viewvc?rev=926185&view=rev
Log:
Unit test cases for r/w extended
- change and delete content
- update properties

Modified:
    
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlyRepositoryInfoTest.java
    
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/WriteObjectTest.java

Modified: 
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlyRepositoryInfoTest.java
URL: 
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlyRepositoryInfoTest.java?rev=926185&r1=926184&r2=926185&view=diff
==============================================================================
--- 
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlyRepositoryInfoTest.java
 (original)
+++ 
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlyRepositoryInfoTest.java
 Mon Mar 22 16:59:27 2010
@@ -18,23 +18,16 @@
  */
 package org.apache.opencmis.client.runtime;
 
-import java.util.List;
-
 import junit.framework.Assert;
 
-import org.apache.opencmis.client.api.ChangeEvent;
-import org.apache.opencmis.client.api.CmisObject;
-import org.apache.opencmis.client.api.Property;
 import org.apache.opencmis.client.api.repository.RepositoryCapabilities;
 import org.apache.opencmis.client.api.repository.RepositoryInfo;
-import org.apache.opencmis.client.api.util.PagingList;
 import org.apache.opencmis.commons.enums.CapabilityAcl;
 import org.apache.opencmis.commons.enums.CapabilityChanges;
 import org.apache.opencmis.commons.enums.CapabilityContentStreamUpdates;
 import org.apache.opencmis.commons.enums.CapabilityJoin;
 import org.apache.opencmis.commons.enums.CapabilityQuery;
 import org.apache.opencmis.commons.enums.CapabilityRendition;
-import org.apache.opencmis.commons.enums.TypeOfChanges;
 import org.junit.Test;
 
 /**
@@ -42,223 +35,226 @@ import org.junit.Test;
  */
 public class ReadOnlyRepositoryInfoTest extends AbstractSessionTest {
 
-  @Test
-  public void changesIncomplete() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-    Assert.assertNotNull(r.changesIncomplete());
-  }
-
-  @Test
-  public void changesOnType() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-    Assert.assertNotNull(r.getChangesOnType());
-  }
-
-  @Test
-  public void cmisVersionSupported() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-    Assert.assertNotNull(r.getCmisVersionSupported());
-    this.log.info("getCmisVersionSupported = " + r.getCmisVersionSupported());
-  }
-
-  @Test
-  public void description() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-    Assert.assertNotNull(r.getDescription());
-    this.log.info("getDescription = " + r.getDescription());
-  }
-
-  @Test
-  public void id() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-    Assert.assertNotNull(r.getId());
-    this.log.info("getId = " + r.getId());
-  }
-
-  @Test
-  public void name() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-    Assert.assertNotNull(r.getName());
-    this.log.info("getName = " + r.getName());
-  }
-
-  @Test
-  public void principalIdAnonymous() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-    Assert.assertNotNull(r.getPrincipalIdAnonymous());
-    this.log.info("getPrincipalIdAnonymous = " + r.getPrincipalIdAnonymous());
-  }
-
-  @Test
-  public void principalIdAnyone() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-    Assert.assertNotNull(r.getPrincipalIdAnyone());
-    this.log.info("getPrincipalIdAnyone = " + r.getPrincipalIdAnyone());
-  }
-
-  @Test
-  public void productName() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-    Assert.assertNotNull(r.getProductName());
-    this.log.info("getProductName = " + r.getProductName());
-  }
-
-  @Test
-  public void thinClientUri() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-    String uri = r.getThinClientUri();
-    this.log.info("getThinClientUri = " + uri);
-  }
-
-  @Test
-  public void vendorName() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-    Assert.assertNotNull(r.getVendorName());
-    this.log.info("getVendorName = " + r.getVendorName());
-  }
-
-  @Test
-  public void repositoryCapabilitiesAclSupport() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-
-    // capabilities
-    RepositoryCapabilities repcap = r.getCapabilities();
-    Assert.assertNotNull(repcap);
-
-    CapabilityAcl capacl = repcap.getAclSupport();
-    Assert.assertNotNull(capacl);
-    switch (capacl) {
-    case DISCOVER:
-    case MANAGE:
-    case NONE:
-      break;
-    default:
-      Assert.fail("enumeration not supported: " + capacl);
-    }
-    this.log.info("CapabilityAcl = " + capacl);
-  }
-
-  @Test
-  public void repositoryCapabilitiesChangesSupport() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-
-    // capabilities
-    RepositoryCapabilities repcap = r.getCapabilities();
-    Assert.assertNotNull(repcap);
-    CapabilityChanges capch = repcap.getChangesSupport();
-    Assert.assertNotNull(capch);
-    switch (capch) {
-    case ALL:
-    case OBJECTIDSONLY:
-    case PROPERTIES:
-    case NONE:
-      break;
-    default:
-      Assert.fail("enumeration not supported: " + capch);
-    }
-    this.log.info("CapabilityChanges = " + capch);
-  }
-
-  @Test
-  public void repositoryCapabilitiesContentStreamUpdateabilitySupport() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-
-    // capabilities
-    RepositoryCapabilities repcap = r.getCapabilities();
-    Assert.assertNotNull(repcap);
-    CapabilityContentStreamUpdates ccsu = 
repcap.getContentStreamUpdatabilitySupport();
-    Assert.assertNotNull(ccsu);
-    switch (ccsu) {
-    case ANYTIME:
-    case NONE:
-    case PWCONLY:
-      break;
-    default:
-      Assert.fail("enumeration not supported: " + ccsu);
-    }
-    this.log.info("CapabilityContentStreamUpdates = " + ccsu);
-  }
-
-  @Test
-  public void repositoryCapabilitiesJointSupport() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-
-    // capabilities
-    RepositoryCapabilities repcap = r.getCapabilities();
-    Assert.assertNotNull(repcap);
-
-    CapabilityJoin capj = repcap.getJoinSupport();
-    Assert.assertNotNull(capj);
-
-    switch (capj) {
-    case INNERANDOUTER:
-    case INNERONLY:
-    case NONE:
-      break;
-    default:
-      Assert.fail("enumeration not supported: " + capj);
-    }
-    this.log.info("CapabilityJoin = " + capj);
-  }
-
-  @Test
-  public void repositoryCapabilitiesQuerySupport() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-
-    // capabilities
-    RepositoryCapabilities repcap = r.getCapabilities();
-    Assert.assertNotNull(repcap);
-
-    CapabilityQuery capq = repcap.getQuerySupport();
-    Assert.assertNotNull(capq);
-    switch (capq) {
-    case BOTHCOMBINED:
-    case BOTHSEPARATE:
-    case FULLTEXTONLY:
-    case METADATAONLY:
-    case NONE:
-        break;
-    default:
-      Assert.fail("enumeration not supported: " + capq);
-    }
-    this.log.info("CapabilityQuery = " + capq);
-  }
-
-  @Test
-  public void repositoryCapabilitiesRenditionSupport() {
-    RepositoryInfo r = this.session.getRepositoryInfo();
-    Assert.assertNotNull(r);
-
-    // capabilities
-    RepositoryCapabilities repcap = r.getCapabilities();
-    Assert.assertNotNull(repcap);
-
-    CapabilityRendition caprend = repcap.getRenditionsSupport();
-    Assert.assertNotNull(caprend);
-    switch (caprend) {
-    case NONE:
-    case READ:
-      break;
-    default:
-      Assert.fail("enumeration not supported: " + caprend);
-    }
-    this.log.info("CapabilityRendition = " + caprend);
-  }
+       @Test
+       public void changesIncomplete() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+               Assert.assertNotNull(r.changesIncomplete());
+       }
+
+       @Test
+       public void changesOnType() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+               Assert.assertNotNull(r.getChangesOnType());
+       }
+
+       @Test
+       public void cmisVersionSupported() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+               Assert.assertNotNull(r.getCmisVersionSupported());
+               this.log.info("getCmisVersionSupported = "
+                               + r.getCmisVersionSupported());
+       }
+
+       @Test
+       public void description() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+               Assert.assertNotNull(r.getDescription());
+               this.log.info("getDescription = " + r.getDescription());
+       }
+
+       @Test
+       public void id() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+               Assert.assertNotNull(r.getId());
+               this.log.info("getId = " + r.getId());
+       }
+
+       @Test
+       public void name() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+               Assert.assertNotNull(r.getName());
+               this.log.info("getName = " + r.getName());
+       }
+
+       @Test
+       public void principalIdAnonymous() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+               Assert.assertNotNull(r.getPrincipalIdAnonymous());
+               this.log.info("getPrincipalIdAnonymous = "
+                               + r.getPrincipalIdAnonymous());
+       }
+
+       @Test
+       public void principalIdAnyone() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+               Assert.assertNotNull(r.getPrincipalIdAnyone());
+               this.log.info("getPrincipalIdAnyone = " + 
r.getPrincipalIdAnyone());
+       }
+
+       @Test
+       public void productName() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+               Assert.assertNotNull(r.getProductName());
+               this.log.info("getProductName = " + r.getProductName());
+       }
+
+       @Test
+       public void thinClientUri() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+               String uri = r.getThinClientUri();
+               this.log.info("getThinClientUri = " + uri);
+       }
+
+       @Test
+       public void vendorName() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+               Assert.assertNotNull(r.getVendorName());
+               this.log.info("getVendorName = " + r.getVendorName());
+       }
+
+       @Test
+       public void repositoryCapabilitiesAclSupport() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+
+               // capabilities
+               RepositoryCapabilities repcap = r.getCapabilities();
+               Assert.assertNotNull(repcap);
+
+               CapabilityAcl capacl = repcap.getAclSupport();
+               Assert.assertNotNull(capacl);
+               switch (capacl) {
+               case DISCOVER:
+               case MANAGE:
+               case NONE:
+                       break;
+               default:
+                       Assert.fail("enumeration not supported: " + capacl);
+               }
+               this.log.info("CapabilityAcl = " + capacl);
+       }
+
+       @Test
+       public void repositoryCapabilitiesChangesSupport() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+
+               // capabilities
+               RepositoryCapabilities repcap = r.getCapabilities();
+               Assert.assertNotNull(repcap);
+               CapabilityChanges capch = repcap.getChangesSupport();
+               Assert.assertNotNull(capch);
+               switch (capch) {
+               case ALL:
+               case OBJECTIDSONLY:
+               case PROPERTIES:
+               case NONE:
+                       break;
+               default:
+                       Assert.fail("enumeration not supported: " + capch);
+               }
+               this.log.info("CapabilityChanges = " + capch);
+       }
+
+       @Test
+       public void repositoryCapabilitiesContentStreamUpdateabilitySupport() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+
+               // capabilities
+               RepositoryCapabilities repcap = r.getCapabilities();
+               Assert.assertNotNull(repcap);
+               CapabilityContentStreamUpdates ccsu = repcap
+                               .getContentStreamUpdatabilitySupport();
+               Assert.assertNotNull(ccsu);
+               switch (ccsu) {
+               case ANYTIME:
+               case NONE:
+               case PWCONLY:
+                       break;
+               default:
+                       Assert.fail("enumeration not supported: " + ccsu);
+               }
+               this.log.info("CapabilityContentStreamUpdates = " + ccsu);
+       }
+
+       @Test
+       public void repositoryCapabilitiesJointSupport() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+
+               // capabilities
+               RepositoryCapabilities repcap = r.getCapabilities();
+               Assert.assertNotNull(repcap);
+
+               CapabilityJoin capj = repcap.getJoinSupport();
+               Assert.assertNotNull(capj);
+
+               switch (capj) {
+               case INNERANDOUTER:
+               case INNERONLY:
+               case NONE:
+                       break;
+               default:
+                       Assert.fail("enumeration not supported: " + capj);
+               }
+               this.log.info("CapabilityJoin = " + capj);
+       }
+
+       @Test
+       public void repositoryCapabilitiesQuerySupport() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+
+               // capabilities
+               RepositoryCapabilities repcap = r.getCapabilities();
+               Assert.assertNotNull(repcap);
+
+               CapabilityQuery capq = repcap.getQuerySupport();
+               Assert.assertNotNull(capq);
+               switch (capq) {
+               case BOTHCOMBINED:
+               case BOTHSEPARATE:
+               case FULLTEXTONLY:
+               case METADATAONLY:
+               case NONE:
+                       break;
+               default:
+                       Assert.fail("enumeration not supported: " + capq);
+               }
+               this.log.info("CapabilityQuery = " + capq);
+       }
+
+       @Test
+       public void repositoryCapabilitiesRenditionSupport() {
+               RepositoryInfo r = this.session.getRepositoryInfo();
+               Assert.assertNotNull(r);
+
+               // capabilities
+               RepositoryCapabilities repcap = r.getCapabilities();
+               Assert.assertNotNull(repcap);
+
+               CapabilityRendition caprend = repcap.getRenditionsSupport();
+               Assert.assertNotNull(caprend);
+               switch (caprend) {
+               case NONE:
+               case READ:
+                       break;
+               default:
+                       Assert.fail("enumeration not supported: " + caprend);
+               }
+               this.log.info("CapabilityRendition = " + caprend);
+       }
 
 }
\ No newline at end of file

Modified: 
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/WriteObjectTest.java
URL: 
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/WriteObjectTest.java?rev=926185&r1=926184&r2=926185&view=diff
==============================================================================
--- 
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/WriteObjectTest.java
 (original)
+++ 
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/WriteObjectTest.java
 Mon Mar 22 16:59:27 2010
@@ -18,6 +18,9 @@
  */
 package org.apache.opencmis.client.runtime;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -26,8 +29,6 @@ import java.util.Collection;
 import java.util.List;
 import java.util.UUID;
 
-import junit.framework.Assert;
-
 import org.apache.opencmis.client.api.ContentStream;
 import org.apache.opencmis.client.api.Document;
 import org.apache.opencmis.client.api.ObjectId;
@@ -36,118 +37,228 @@ import org.apache.opencmis.client.api.ob
 import org.apache.opencmis.commons.api.PropertyDefinition;
 import org.apache.opencmis.commons.enums.CmisProperties;
 import org.apache.opencmis.commons.enums.VersioningState;
-import org.junit.Ignore;
+import org.apache.opencmis.commons.exceptions.CmisNotSupportedException;
 import org.junit.Test;
 
 public class WriteObjectTest extends AbstractSessionTest {
 
-  @Test
-  public void createFolder() {
-    ObjectId parentId = this.session.createObjectId(Fixture.getTestRootId());
-    String folderName = UUID.randomUUID().toString();
-    String typeId = FixtureData.FOLDER_TYPE_ID.value();
-
-    ObjectType ot = this.session.getTypeDefinition(typeId);
-    Collection<PropertyDefinition<?>> pdefs = 
ot.getPropertyDefintions().values();
-    List<Property<?>> properties = new ArrayList<Property<?>>();
-    Property<?> prop = null;
-
-    for (PropertyDefinition<?> pd : pdefs) {
-      try {
-        CmisProperties cmisp = CmisProperties.fromValue(pd.getId());
-        switch (cmisp) {
-        case NAME:
-          prop = this.session.getObjectFactory().createProperty(pd, 
folderName);
-          properties.add(prop);
-          break;
-        case OBJECT_TYPE_ID:
-          prop = this.session.getObjectFactory().createProperty(pd, typeId);
-          properties.add(prop);
-          break;
-        default:
-          break;
-        }
-      }
-      catch (Exception e) {
-        // custom property definition
-      }
-
-    }
-
-    ObjectId id = this.session.createFolder(properties, parentId, null, null, 
null);
-    Assert.assertNotNull(id);
-  }
-
-  @Test
-  public void createDocument() throws IOException {
-    ObjectId parentId = this.session.createObjectId(Fixture.getTestRootId());
-    String folderName = UUID.randomUUID().toString();
-    String typeId = FixtureData.DOCUMENT_TYPE_ID.value();
-
-    ObjectType ot = this.session.getTypeDefinition(typeId);
-    Collection<PropertyDefinition<?>> pdefs = 
ot.getPropertyDefintions().values();
-    List<Property<?>> properties = new ArrayList<Property<?>>();
-    Property<?> prop = null;
-
-    for (PropertyDefinition<?> pd : pdefs) {
-      try {
-        CmisProperties cmisp = CmisProperties.fromValue(pd.getId());
-        switch (cmisp) {
-        case NAME:
-          prop = this.session.getObjectFactory().createProperty(pd, 
folderName);
-          properties.add(prop);
-          break;
-        case OBJECT_TYPE_ID:
-          prop = this.session.getObjectFactory().createProperty(pd, typeId);
-          properties.add(prop);
-          break;
-        default:
-          break;
-        }
-      }
-      catch (Exception e) {
-        // custom property definition (note: document type should not have 
further mandatory
-        // properties)
-      }
-
-    }
-
-    String filename = UUID.randomUUID().toString();
-    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 contentStream = 
this.session.getObjectFactory().createContentStream(filename,
-        buf1.length, mimetype, in1);
-    Assert.assertNotNull(contentStream);
-
-    ObjectId id = this.session.createDocument(properties, parentId, 
contentStream,
-        VersioningState.NONE, null, null, null);
-    Assert.assertNotNull(id);
-
-    // verify content (which is not supported by mock)
-    if (this.isMock()) {
-      return;  
-    }
-    Document doc = (Document) this.session.getObject(id);
-    Assert.assertNotNull(doc);
-//    Assert.assertEquals(buf1.length, doc.getContentStreamLength());
-//    Assert.assertEquals(mimetype, doc.getContentStreamMimeType());
-//    Assert.assertEquals(filename, doc.getContentStreamFileName());
-    ContentStream readStream = doc.getContentStream();
-    InputStream in2 = readStream.getStream();
-    StringBuffer sbuf = null;
-    sbuf = new StringBuffer(in2.available());
-    int count;
-    byte[] buf2 = new byte[100];
-    while ((count = in2.read(buf2)) != -1) {
-      for (int i = 0; i < count; i++) {
-        sbuf.append((char) buf2[i]);
-      }
-    }
-    in2.close();
-    String content2 = sbuf.toString();
-    Assert.assertEquals(content1, content2);
-  }
+       @Test
+       public void createFolder() {
+               ObjectId parentId = this.session
+                               .createObjectId(Fixture.getTestRootId());
+               String folderName = UUID.randomUUID().toString();
+               String typeId = FixtureData.FOLDER_TYPE_ID.value();
+
+               ObjectType ot = this.session.getTypeDefinition(typeId);
+               Collection<PropertyDefinition<?>> pdefs = 
ot.getPropertyDefintions()
+                               .values();
+               List<Property<?>> properties = new ArrayList<Property<?>>();
+               Property<?> prop = null;
+
+               for (PropertyDefinition<?> pd : pdefs) {
+                       try {
+                               CmisProperties cmisp = 
CmisProperties.fromValue(pd.getId());
+                               switch (cmisp) {
+                               case NAME:
+                                       prop = 
this.session.getObjectFactory().createProperty(pd,
+                                                       folderName);
+                                       properties.add(prop);
+                                       break;
+                               case OBJECT_TYPE_ID:
+                                       prop = 
this.session.getObjectFactory().createProperty(pd,
+                                                       typeId);
+                                       properties.add(prop);
+                                       break;
+                               default:
+                                       break;
+                               }
+                       } catch (Exception e) {
+                               // custom property definition
+                       }
+
+               }
+
+               ObjectId id = this.session.createFolder(properties, parentId, 
null,
+                               null, null);
+               assertNotNull(id);
+       }
+
+       @Test
+       public void createDocument() throws IOException {
+               ObjectId parentId = this.session
+                               .createObjectId(Fixture.getTestRootId());
+               String folderName = UUID.randomUUID().toString();
+               String typeId = FixtureData.DOCUMENT_TYPE_ID.value();
+
+               ObjectType ot = this.session.getTypeDefinition(typeId);
+               Collection<PropertyDefinition<?>> pdefs = 
ot.getPropertyDefintions()
+                               .values();
+               List<Property<?>> properties = new ArrayList<Property<?>>();
+               Property<?> prop = null;
+
+               for (PropertyDefinition<?> pd : pdefs) {
+                       try {
+                               CmisProperties cmisp = 
CmisProperties.fromValue(pd.getId());
+                               switch (cmisp) {
+                               case NAME:
+                                       prop = 
this.session.getObjectFactory().createProperty(pd,
+                                                       folderName);
+                                       properties.add(prop);
+                                       break;
+                               case OBJECT_TYPE_ID:
+                                       prop = 
this.session.getObjectFactory().createProperty(pd,
+                                                       typeId);
+                                       properties.add(prop);
+                                       break;
+                               default:
+                                       break;
+                               }
+                       } catch (Exception e) {
+                               /*
+                                * custom property definition (note: document 
type should not
+                                * have further mandatory properties)
+                                */
+                               this.log
+                                               .info(
+                                                               "Custom 
property found but not supported in test case!",
+                                                               e);
+                       }
+               }
+
+               String filename = UUID.randomUUID().toString();
+               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 contentStream = this.session.getObjectFactory()
+                               .createContentStream(filename, buf1.length, 
mimetype, in1);
+               assertNotNull(contentStream);
+
+               ObjectId id = this.session.createDocument(properties, parentId,
+                               contentStream, VersioningState.NONE, null, 
null, null);
+               assertNotNull(id);
+
+               // verify content (which is not supported by mock)
+               if (this.isMock()) {
+                       return;
+               }
+               Document doc = (Document) this.session.getObject(id);
+               assertNotNull(doc);
+               // Assert.assertEquals(buf1.length, 
doc.getContentStreamLength());
+               // Assert.assertEquals(mimetype, 
doc.getContentStreamMimeType());
+               // Assert.assertEquals(filename, 
doc.getContentStreamFileName());
+               String content2 = 
this.getContentAsString(doc.getContentStream());
+               assertEquals(content1, content2);
+       }
+
+       @Test
+       public void createDocumentFromSource() throws IOException {
+               try {
+                       String path = "/" + Fixture.TEST_ROOT_FOLDER_NAME + "/"
+                                       + FixtureData.DOCUMENT1_NAME;
+                       Document srcDocument = (Document) this.session
+                                       .getObjectByPath(path);
+                       assertNotNull("Document not found: " + path, 
srcDocument);
+                       String srcContent = this.getContentAsString(srcDocument
+                                       .getContentStream());
+
+                       ObjectId parentFolder = session.createObjectId(Fixture
+                                       .getTestRootId());
+                       List<Property<?>> srcProperties = 
srcDocument.getProperties();
+                       assertNotNull(srcProperties);
+                       List<Property<?>> dstProperties = new 
ArrayList<Property<?>>();
+
+                       for (Property<?> p : srcProperties) {
+                               if 
(p.getId().equalsIgnoreCase(CmisProperties.NAME.value())) {
+                                       // change the name
+                                       String name = 
UUID.randomUUID().toString();
+                                       Property<String> pn = 
this.session.getObjectFactory()
+                                                       
.createProperty(p.getDefinition(), name);
+                                       dstProperties.add(pn);
+                               } else {
+                                       dstProperties.add(p);
+                               }
+                       }
+
+                       ObjectId dstDocumentId = 
this.session.createDocumentFromSource(
+                                       srcDocument, dstProperties, 
parentFolder,
+                                       VersioningState.NONE, null, null, null);
+                       assertNotNull(dstDocumentId);
+                       Document dstDocument = (Document) this.session
+                                       .getObject(dstDocumentId);
+                       String dstContent = this.getContentAsString(dstDocument
+                                       .getContentStream());
+                       assertEquals(srcContent, dstContent);
+
+               } catch (CmisNotSupportedException e) {
+                       // not an error
+                       this.log.info(e.getMessage(), e);
+               }
+       }
+
+       @Test
+       public void deleteAndCreateContent() throws IOException {
+               String path = "/" + Fixture.TEST_ROOT_FOLDER_NAME + "/"
+                               + FixtureData.DOCUMENT1_NAME;
+               Document document = (Document) 
this.session.getObjectByPath(path);
+               assertNotNull("Document not found: " + path, document);
+
+               // check default content
+               ContentStream contentStream = document.getContentStream();
+               assertNotNull(contentStream);
+               String contentString = this.getContentAsString(contentStream);
+               assertNotNull(contentString);
+
+               // delete and set new content
+               ObjectId id = document.deleteContentStream();
+               // assertNotNull(id);
+
+               String filename = UUID.randomUUID().toString();
+               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 = 
this.session.getObjectFactory().createContentStream(
+                               filename, buf1.length, mimetype, in1);
+               assertNotNull(contentStream);
+
+               document.setContentStream(true, contentStream);
+
+               // check default content
+               ContentStream contentStream2 = document.getContentStream();
+               assertNotNull(contentStream2);
+               String contentString2 = this.getContentAsString(contentStream2);
+               assertNotNull(contentString2);
+
+               assertEquals(content1, contentString2);
+       }
+
+       @Test
+       public void updateProperties() {
+//             String path = "/" + Fixture.TEST_ROOT_FOLDER_NAME + "/"
+//                             + FixtureData.DOCUMENT1_NAME;
+//             Document document = (Document) 
this.session.getObjectByPath(path);
+//             assertNotNull("Document not found: " + path, document);
+//     
+//             document.updateProperties();
+       }
+
+       private String getContentAsString(ContentStream stream) throws 
IOException {
+               assertNotNull(stream);
+               InputStream in2 = stream.getStream();
+               assertNotNull(in2);
+               StringBuffer sbuf = null;
+               sbuf = new StringBuffer(in2.available());
+               int count;
+               byte[] buf2 = new byte[100];
+               while ((count = in2.read(buf2)) != -1) {
+                       for (int i = 0; i < count; i++) {
+                               sbuf.append((char) buf2[i]);
+                       }
+               }
+               in2.close();
+               return sbuf.toString();
+       }
 }


Reply via email to