Merged CMIS063 to HEAD

15463: Fixed MOB-1100: Update Web Services to 0.62 final

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@17232 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
David Caruana
2009-10-29 16:31:49 +00:00
parent e90b63f20b
commit babca05012
168 changed files with 10960 additions and 6673 deletions

View File

@@ -29,14 +29,11 @@ import java.util.List;
import junit.framework.TestCase;
import org.alfresco.cmis.CMISDictionaryModel;
import org.alfresco.repo.cmis.ws.utils.PropertyUtil;
/**
* @author Michael Shavnev
* @author Alexander Tsvetkov
*
*/
public abstract class AbstractServiceTest extends TestCase
{
// protected ServiceRegistry serviceRegistry;
@@ -53,7 +50,6 @@ public abstract class AbstractServiceTest extends TestCase
protected Object servicePort = null;
protected CmisServiceTestHelper helper;
protected PropertyUtil propertiesUtil = new PropertyUtil();
private static boolean testAsUser = false;
@@ -103,15 +99,14 @@ public abstract class AbstractServiceTest extends TestCase
}
public String getObjectName(GetPropertiesResponse response)
public String getObjectName(CmisObjectType response)
{
String property = null;
if (response != null && response.getObject() != null)
if (response != null)
{
CmisObjectType object = response.getObject();
CmisPropertiesType properties = object.getProperties();
property = (String) propertiesUtil.getCmisPropertyValue(properties, CMISDictionaryModel.PROP_NAME, null);
CmisPropertiesType properties = response.getProperties();
property = getStringProperty(properties, CMISDictionaryModel.PROP_NAME);
}
else
{
@@ -120,44 +115,78 @@ public abstract class AbstractServiceTest extends TestCase
return property;
}
public String getPropertyValue(GetPropertiesResponse response, String propertyName)
protected String getIdProperty(CmisPropertiesType properties, String propertyName)
{
String property = null;
if (response != null && response.getObject() != null)
if (null == propertyName)
{
CmisObjectType object = response.getObject();
CmisPropertiesType properties = object.getProperties();
if (propertiesUtil.getCmisPropertyValue(properties, propertyName, null) != null)
return null;
}
for (CmisProperty property : properties.getProperty())
{
if ((property instanceof CmisPropertyId) && propertyName.equals(getPropertyName(property)))
{
property = (String) propertiesUtil.getCmisPropertyValue(properties, propertyName, null);
return ((CmisPropertyId) property).getValue().iterator().next();
}
}
else
{
fail("Response has no results.");
}
return property;
return null;
}
public Boolean getPropertyBooleanValue(GetPropertiesResponse response, String propertyName)
protected String getStringProperty(CmisPropertiesType properties, String propertyName)
{
Boolean property = null;
if (response != null && response.getObject() != null)
if (null == propertyName)
{
CmisObjectType object = response.getObject();
CmisPropertiesType properties = object.getProperties();
if (propertiesUtil.getCmisPropertyValue(properties, propertyName, null) != null)
return null;
}
for (CmisProperty property : properties.getProperty())
{
if ((property instanceof CmisPropertyString) && propertyName.equals(getPropertyName(property)))
{
property = (Boolean) propertiesUtil.getCmisPropertyValue(properties, propertyName, null);
return ((CmisPropertyString) property).getValue().iterator().next();
}
}
else
return null;
}
protected Boolean getBooleanProperty(CmisPropertiesType properties, String propertyName)
{
if (null == propertyName)
{
fail("Response has no results.");
return null;
}
return property;
for (CmisProperty property : properties.getProperty())
{
if ((property instanceof CmisPropertyBoolean) && propertyName.equals(getPropertyName(property)))
{
return ((CmisPropertyBoolean) property).getValue().iterator().next();
}
}
return null;
}
private String getPropertyName(CmisProperty property)
{
String propertyName = (null != property) ? (property.getPdid()) : (null);
if (null == propertyName)
{
propertyName = property.getLocalname();
if (null == propertyName)
{
propertyName = property.getDisplayname();
}
}
return propertyName;
}
protected void assertObjectPropertiesNotNull(CmisObjectType propertiesObject)
{
assertNotNull(propertiesObject);
assertNotNull(propertiesObject.getProperties());
}
public String getObjectId(GetPropertiesResponse response)
@@ -168,7 +197,7 @@ public abstract class AbstractServiceTest extends TestCase
{
CmisObjectType object = response.getObject();
CmisPropertiesType properties = object.getProperties();
property = (String) propertiesUtil.getCmisPropertyValue(properties, CMISDictionaryModel.PROP_OBJECT_ID, null);
property = getIdProperty(properties, CMISDictionaryModel.PROP_OBJECT_ID);
}
else
{
@@ -182,7 +211,8 @@ public abstract class AbstractServiceTest extends TestCase
for (CmisObjectType object : objects)
{
CmisPropertiesType properties = object.getProperties();
String name = (String) propertiesUtil.getCmisPropertyValue(properties, CMISDictionaryModel.PROP_NAME, null);
String name = null;
name = getStringProperty(properties, CMISDictionaryModel.PROP_NAME);
assertNotNull(name);
}
@@ -194,7 +224,8 @@ public abstract class AbstractServiceTest extends TestCase
for (CmisObjectType object : objects)
{
CmisPropertiesType properties = object.getProperties();
String property = (String) propertiesUtil.getCmisPropertyValue(properties, propertyName, null);
String property = null;
property = getStringProperty(properties, propertyName);
if (property.equals(propertyValue))
{
isFound = true;

View File

@@ -25,12 +25,16 @@
package org.alfresco.repo.cmis.ws;
import java.math.BigInteger;
import java.util.LinkedList;
import java.util.List;
import javax.activation.DataHandler;
import javax.xml.ws.Holder;
import junit.framework.TestCase;
import org.alfresco.cmis.CMISDictionaryModel;
import org.alfresco.repo.cmis.ws.utils.PropertyUtil;
import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.security.AuthenticationService;
@@ -51,6 +55,7 @@ public class CMISCustomTypeTest extends TestCase
private static ObjectServicePort objectServicePort;
private static DiscoveryServicePort discoveryServicePort;
private static NavigationServicePort navigationServicePort;
private static PropertyUtil propertiesUtil;
@Override
protected void setUp() throws Exception
@@ -64,6 +69,9 @@ public class CMISCustomTypeTest extends TestCase
authenticationService.authenticate(USERNAME, PASSWORD.toCharArray());
if(null == propertiesUtil) {
propertiesUtil = (PropertyUtil) applicationContext.getBean("propertiesUtils");
}
if (repositoryServicePort == null)
{
repositoryServicePort = (RepositoryServicePort) applicationContext.getBean("dmRepositoryService");
@@ -80,17 +88,16 @@ public class CMISCustomTypeTest extends TestCase
{
discoveryServicePort = (DiscoveryServicePort) applicationContext.getBean("dmDiscoveryService");
}
repositoryId = repositoryId == null ? repositoryServicePort.getRepositories().get(0).getRepositoryId() : repositoryId;
repositoryId = repositoryId == null ? repositoryServicePort.getRepositories().get(0).getId() : repositoryId;
if (folderId == null)
{
String rootFolderId = repositoryServicePort.getRepositoryInfo(repositoryId).getRootFolderId();
GetChildren getChildren = new GetChildren();
getChildren.setRepositoryId(repositoryId);
getChildren.setFolderId(rootFolderId);
GetChildrenResponse response = navigationServicePort.getChildren(getChildren);
Holder<List<CmisObjectType>> response = new Holder<List<CmisObjectType>>(new LinkedList<CmisObjectType>());
Holder<Boolean> hasMoreItems = new Holder<Boolean>();
navigationServicePort.getChildren(repositoryId, folderId, "*", false, EnumIncludeRelationships.NONE, false, false, BigInteger.ZERO, BigInteger.ZERO, "", response, hasMoreItems);
assertNotNull(response);
assertNotNull(response.getObject());
for (CmisObjectType cmisObjectType : response.getObject())
assertNotNull(response.value);
for (CmisObjectType cmisObjectType : response.value)
{
CmisPropertyString propertyString = (CmisPropertyString) getCmisProperty(cmisObjectType.getProperties(), "Name");
if (propertyString != null && propertyString.getValue() != null && propertyString.getValue().size() > 0 && "CMIS Tests".equals(propertyString.getValue().get(0)))
@@ -118,14 +125,11 @@ public class CMISCustomTypeTest extends TestCase
String folderId1 = createTestFolder(repositoryId, "testCreateCustomFolder" + System.currentTimeMillis(), folderId, true);
assertNotNull(folderId1);
GetProperties getProperties = new GetProperties();
getProperties.setRepositoryId(repositoryId);
getProperties.setObjectId(folderId1);
GetPropertiesResponse propertiesResponse = objectServicePort.getProperties(getProperties);
assertNotNull(propertiesResponse);
CmisPropertyId objectTypeId = (CmisPropertyId) getCmisProperty(propertiesResponse.getObject().getProperties(), "ObjectTypeId");
CmisObjectType propertiesObject = objectServicePort.getProperties(repositoryId, folderId1, "*", false, EnumIncludeRelationships.NONE, false);
assertNotNull(propertiesObject);
CmisPropertyId objectTypeId = (CmisPropertyId) getCmisProperty(propertiesObject.getProperties(), "ObjectTypeId");
assertTrue(objectTypeId != null && objectTypeId.getValue() != null && objectTypeId.getValue().size() == 1 && "F/cmiscustom_folder".equals(objectTypeId.getValue().get(0)));
CmisPropertyString customProp = (CmisPropertyString) getCmisProperty(propertiesResponse.getObject().getProperties(), "cmiscustom_folderprop_string");
CmisPropertyString customProp = (CmisPropertyString) getCmisProperty(propertiesObject.getProperties(), "cmiscustom_folderprop_string");
assertTrue(customProp != null && customProp.getValue() != null && customProp.getValue().size() == 1 && "custom string".equals(customProp.getValue().get(0)));
}
@@ -134,18 +138,15 @@ public class CMISCustomTypeTest extends TestCase
String documentId = createTestDocument(repositoryId, "testCreateCustomDocument" + System.currentTimeMillis(), folderId, true);
assertNotNull(documentId);
GetProperties getProperties = new GetProperties();
getProperties.setRepositoryId(repositoryId);
getProperties.setObjectId(documentId);
GetPropertiesResponse propertiesResponse = objectServicePort.getProperties(getProperties);
assertNotNull(propertiesResponse);
CmisObjectType propertiesObject = objectServicePort.getProperties(repositoryId, documentId, "*", false, EnumIncludeRelationships.NONE, false);
assertNotNull(propertiesObject);
CmisPropertyId objectTypeId = (CmisPropertyId) getCmisProperty(propertiesResponse.getObject().getProperties(), "ObjectTypeId");
CmisPropertyId objectTypeId = (CmisPropertyId) getCmisProperty(propertiesObject.getProperties(), "ObjectTypeId");
assertTrue(objectTypeId != null && objectTypeId.getValue() != null && objectTypeId.getValue().size() == 1 && "D/cmiscustom_document".equals(objectTypeId.getValue().get(0)));
CmisPropertyString customProp = (CmisPropertyString) getCmisProperty(propertiesResponse.getObject().getProperties(), "cmiscustom_docprop_string");
CmisPropertyString customProp = (CmisPropertyString) getCmisProperty(propertiesObject.getProperties(), "cmiscustom_docprop_string");
assertTrue(customProp != null && customProp.getValue() != null && customProp.getValue().size() == 1 && "custom string".equals(customProp.getValue().get(0)));
CmisPropertyBoolean propertyMulti = (CmisPropertyBoolean) getCmisProperty(propertiesResponse.getObject().getProperties(), "cmiscustom_docprop_boolean_multi");
CmisPropertyBoolean propertyMulti = (CmisPropertyBoolean) getCmisProperty(propertiesObject.getProperties(), "cmiscustom_docprop_boolean_multi");
assertTrue(propertyMulti != null && propertyMulti.getValue() != null && propertyMulti.getValue().size() == 2 && propertyMulti.getValue().get(0) && !propertyMulti.getValue().get(1));
}
@@ -159,33 +160,30 @@ public class CMISCustomTypeTest extends TestCase
String newName = "Updated Title " + System.currentTimeMillis();
String customProp = "custom " + System.currentTimeMillis();
CmisPropertyString cmisPropertyString = new CmisPropertyString();
cmisPropertyString.setName("Name");
cmisPropertyString.setPdid("Name");
cmisPropertyString.getValue().add(newName);
properties.getProperty().add(cmisPropertyString);
cmisPropertyString = new CmisPropertyString();
cmisPropertyString.setName("cmiscustom_docprop_string");
cmisPropertyString.setPdid("cmiscustom_docprop_string");
cmisPropertyString.getValue().add(customProp);
properties.getProperty().add(cmisPropertyString);
CmisPropertyBoolean cmisPropertymulti = new CmisPropertyBoolean();
cmisPropertymulti.setName("cmiscustom_docprop_boolean_multi");
cmisPropertymulti.setPdid("cmiscustom_docprop_boolean_multi");
cmisPropertymulti.getValue().add(false);
cmisPropertymulti.getValue().add(true);
properties.getProperty().add(cmisPropertymulti);
objectServicePort.updateProperties(repositoryId, holder, null, properties);
GetProperties getProperties = new GetProperties();
getProperties.setRepositoryId(repositoryId);
getProperties.setObjectId(documentId);
GetPropertiesResponse propertiesResponse = objectServicePort.getProperties(getProperties);
assertNotNull(propertiesResponse);
CmisObjectType propertiesObject = objectServicePort.getProperties(repositoryId, documentId, "*", false, EnumIncludeRelationships.NONE, false);
assertNotNull(propertiesObject);
CmisPropertyId objectTypeId = (CmisPropertyId) getCmisProperty(propertiesResponse.getObject().getProperties(), "ObjectTypeId");
CmisPropertyId objectTypeId = (CmisPropertyId) getCmisProperty(propertiesObject.getProperties(), "ObjectTypeId");
assertTrue(objectTypeId != null && objectTypeId.getValue() != null && objectTypeId.getValue().size() == 1 && "D/cmiscustom_document".equals(objectTypeId.getValue().get(0)));
CmisPropertyString propertyString = (CmisPropertyString) getCmisProperty(propertiesResponse.getObject().getProperties(), "Name");
CmisPropertyString propertyString = (CmisPropertyString) getCmisProperty(propertiesObject.getProperties(), "Name");
assertTrue(propertyString != null && propertyString.getValue() != null && propertyString.getValue().size() == 1 && newName.equals(propertyString.getValue().get(0)));
propertyString = (CmisPropertyString) getCmisProperty(propertiesResponse.getObject().getProperties(), "cmiscustom_docprop_string");
propertyString = (CmisPropertyString) getCmisProperty(propertiesObject.getProperties(), "cmiscustom_docprop_string");
assertTrue(propertyString != null && propertyString.getValue() != null && propertyString.getValue().size() == 1 && customProp.equals(propertyString.getValue().get(0)));
CmisPropertyBoolean propertyMulti = (CmisPropertyBoolean) getCmisProperty(propertiesResponse.getObject().getProperties(), "cmiscustom_docprop_boolean_multi");
CmisPropertyBoolean propertyMulti = (CmisPropertyBoolean) getCmisProperty(propertiesObject.getProperties(), "cmiscustom_docprop_boolean_multi");
assertTrue(propertyMulti != null && propertyMulti.getValue() != null && propertyMulti.getValue().size() == 2 && !propertyMulti.getValue().get(0) && propertyMulti.getValue().get(1));
}
@@ -196,7 +194,7 @@ public class CMISCustomTypeTest extends TestCase
assertTrue(isObjectInFolder(repositoryId, documentId, folderId));
objectServicePort.deleteObject(repositoryId, documentId);
objectServicePort.deleteObject(repositoryId, documentId, true);
assertFalse(isObjectInFolder(repositoryId, documentId, folderId));
}
@@ -215,11 +213,11 @@ public class CMISCustomTypeTest extends TestCase
String query = "SELECT ObjectId, Name, ObjectTypeId, cmiscustom_docprop_string, cmiscustom_docprop_boolean_multi FROM cmiscustom_document " +
"WHERE IN_FOLDER('" + folderId1 + "') " +
"AND cmiscustom_docprop_string = 'custom string' ";
CmisQueryType queryType = new CmisQueryType();
Query queryType = new Query();
queryType.setRepositoryId(repositoryId);
queryType.setStatement(query);
queryType.setSkipCount(BigInteger.valueOf(0));
queryType.setPageSize(BigInteger.valueOf(5));
queryType.setMaxItems(BigInteger.valueOf(5));
QueryResponse response = discoveryServicePort.query(queryType);
assertNotNull(response);
@@ -269,7 +267,7 @@ public class CMISCustomTypeTest extends TestCase
{
for (CmisProperty property : cmisPropertiesType.getProperty())
{
if (property.getName().equals(propertyName))
if (propertiesUtil.getPropertyName(property).equals(propertyName))
{
return property;
}
@@ -279,13 +277,12 @@ public class CMISCustomTypeTest extends TestCase
private boolean isObjectInFolder(String repositoryId, String objectId, String folderId) throws CmisException
{
GetChildren getChildren = new GetChildren();
getChildren.setRepositoryId(repositoryId);
getChildren.setFolderId(folderId);
GetChildrenResponse response = navigationServicePort.getChildren(getChildren);
Holder<List<CmisObjectType>> response = new Holder<List<CmisObjectType>>(new LinkedList<CmisObjectType>());
Holder<Boolean> hasMoreItems = new Holder<Boolean>();
navigationServicePort.getChildren(repositoryId, folderId, "*", false, EnumIncludeRelationships.NONE, false, false, BigInteger.ZERO, BigInteger.ZERO, "", response, hasMoreItems);
assertNotNull(response);
assertNotNull(response.getObject());
for (CmisObjectType cmisObjectType : response.getObject())
assertNotNull(response.value);
for (CmisObjectType cmisObjectType : response.value)
{
CmisPropertyId propertyId = (CmisPropertyId) getCmisProperty(cmisObjectType.getProperties(), "ObjectId");
if (propertyId != null && propertyId.getValue() != null && propertyId.getValue().size() > 0 && objectId.equals(propertyId.getValue().get(0)))
@@ -300,42 +297,52 @@ public class CMISCustomTypeTest extends TestCase
{
CmisPropertiesType properties = new CmisPropertiesType();
CmisPropertyString cmisPropertyString = new CmisPropertyString();
cmisPropertyString.setName("Name");
cmisPropertyString.setPdid("Name");
cmisPropertyString.getValue().add(name);
properties.getProperty().add(cmisPropertyString);
if (custom)
{
cmisPropertyString = new CmisPropertyString();
cmisPropertyString.setName("cmiscustom_docprop_string");
cmisPropertyString.setPdid("cmiscustom_docprop_string");
cmisPropertyString.getValue().add("custom string");
properties.getProperty().add(cmisPropertyString);
CmisPropertyBoolean cmisPropertyBoolean = new CmisPropertyBoolean();
cmisPropertyBoolean.setName("cmiscustom_docprop_boolean_multi");
cmisPropertyBoolean.setPdid("cmiscustom_docprop_boolean_multi");
cmisPropertyBoolean.getValue().add(true);
cmisPropertyBoolean.getValue().add(false);
properties.getProperty().add(cmisPropertyBoolean);
}
CmisPropertyId idProperty = new CmisPropertyId();
idProperty.setPdid(CMISDictionaryModel.PROP_OBJECT_TYPE_ID);
idProperty.getValue().add(custom ? "D/cmiscustom_document" : "document");
properties.getProperty().add(idProperty);
CmisContentStreamType cmisStream = new CmisContentStreamType();
cmisStream.setFilename(name);
cmisStream.setMimeType(MimetypeMap.MIMETYPE_TEXT_PLAIN);
cmisStream.setStream(new DataHandler(name, MimetypeMap.MIMETYPE_TEXT_PLAIN));
return objectServicePort.createDocument(repositoryId, custom ? "D/cmiscustom_document" : "document", properties, folderId, cmisStream, null);
return objectServicePort.createDocument(repositoryId, properties, folderId, cmisStream, null, null, null, null);
}
private String createTestFolder(String repositoryId, String name, String folderId, boolean custom) throws CmisException
{
CmisPropertiesType properties = new CmisPropertiesType();
CmisPropertyString cmisPropertyString = new CmisPropertyString();
cmisPropertyString.setName("Name");
cmisPropertyString.setPdid("Name");
cmisPropertyString.getValue().add(name);
properties.getProperty().add(cmisPropertyString);
if (custom)
{
cmisPropertyString = new CmisPropertyString();
cmisPropertyString.setName("cmiscustom_folderprop_string");
cmisPropertyString.setPdid("cmiscustom_folderprop_string");
cmisPropertyString.getValue().add("custom string");
properties.getProperty().add(cmisPropertyString);
}
return objectServicePort.createFolder(repositoryId, custom ? "F/cmiscustom_folder" : "folder", properties, folderId);
CmisPropertyId idProperty = new CmisPropertyId();
idProperty.setPdid(CMISDictionaryModel.PROP_OBJECT_TYPE_ID);
idProperty.getValue().add(custom ? "F/cmiscustom_folder" : "folder");
properties.getProperty().add(idProperty);
return objectServicePort.createFolder(repositoryId, properties, folderId, null, null, null);
}
}

View File

@@ -29,6 +29,7 @@ import java.math.BigInteger;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -195,9 +196,14 @@ public class CmisServiceTestHelper extends TestCase
CmisPropertiesType properties = new CmisPropertiesType();
List<CmisProperty> propertiesList = properties.getProperty();
CmisPropertyString cmisProperty = new CmisPropertyString();
cmisProperty.setName(CMISDictionaryModel.PROP_NAME);
cmisProperty.setPdid(CMISDictionaryModel.PROP_NAME);
cmisProperty.getValue().add(name);
CmisPropertyId idProperty = new CmisPropertyId();
idProperty.setPdid(CMISDictionaryModel.PROP_OBJECT_TYPE_ID);
idProperty.getValue().add(CMISDictionaryModel.DOCUMENT_TYPE_ID.getId());
propertiesList.add(cmisProperty);
propertiesList.add(idProperty);
CmisContentStreamType cmisStream = new CmisContentStreamType();
cmisStream.setFilename(name);
@@ -208,8 +214,7 @@ public class CmisServiceTestHelper extends TestCase
// public String createDocument(String repositoryId, String typeId, CmisPropertiesType properties, String folderId, CmisContentStreamType contentStream,
// EnumVersioningState versioningState)
String objectId = objectServicePort.createDocument(repositoryId, CMISDictionaryModel.DOCUMENT_TYPE_ID.getId(), properties, parentFolderId, cmisStream,
EnumVersioningState.MAJOR);
String objectId = objectServicePort.createDocument(repositoryId, properties, parentFolderId, cmisStream, EnumVersioningState.MAJOR, null, null, null);
// assertNotNull(objectId);
return objectId;
}
@@ -221,9 +226,14 @@ public class CmisServiceTestHelper extends TestCase
CmisPropertiesType properties = new CmisPropertiesType();
List<CmisProperty> propertiesList = properties.getProperty();
CmisPropertyString cmisProperty = new CmisPropertyString();
cmisProperty.setName(CMISDictionaryModel.PROP_NAME);
cmisProperty.setPdid(CMISDictionaryModel.PROP_NAME);
cmisProperty.getValue().add(name);
CmisPropertyId idProperty = new CmisPropertyId();
idProperty.setPdid(CMISDictionaryModel.PROP_OBJECT_TYPE_ID);
idProperty.getValue().add(typeId.getId());
propertiesList.add(cmisProperty);
propertiesList.add(idProperty);
CmisContentStreamType cmisStream = new CmisContentStreamType();
cmisStream.setFilename(name);
@@ -234,7 +244,7 @@ public class CmisServiceTestHelper extends TestCase
// public String createDocument(String repositoryId, String typeId, CmisPropertiesType properties, String folderId, CmisContentStreamType contentStream,
// EnumVersioningState versioningState)
String objectId = objectServicePort.createDocument(repositoryId, typeId.getId(), properties, parentFolderId, cmisStream, enumVersioningState);
String objectId = objectServicePort.createDocument(repositoryId, properties, parentFolderId, cmisStream, enumVersioningState, null, null, null);
// assertNotNull(objectId);
return objectId;
}
@@ -252,14 +262,18 @@ public class CmisServiceTestHelper extends TestCase
CmisPropertiesType properties = new CmisPropertiesType();
List<CmisProperty> propertiesList = properties.getProperty();
CmisPropertyString cmisProperty = new CmisPropertyString();
cmisProperty.setName(CMISDictionaryModel.PROP_NAME);
cmisProperty.setPdid(CMISDictionaryModel.PROP_NAME);
cmisProperty.getValue().add(name + dataSource.getName());
CmisPropertyId idProperty = new CmisPropertyId();
idProperty.setPdid(CMISDictionaryModel.PROP_OBJECT_TYPE_ID);
idProperty.getValue().add(CMISDictionaryModel.DOCUMENT_TYPE_ID.getId());
propertiesList.add(cmisProperty);
propertiesList.add(idProperty);
// public String createDocument(String repositoryId, String typeId, CmisPropertiesType properties, String folderId, CmisContentStreamType contentStream,
// EnumVersioningState versioningState)
String objectId = objectServicePort.createDocument(repositoryId, CMISDictionaryModel.DOCUMENT_TYPE_ID.getId(), properties, parentFolderId, cmisStream,
EnumVersioningState.MAJOR);
String objectId = objectServicePort.createDocument(repositoryId, properties, parentFolderId, cmisStream, EnumVersioningState.MAJOR, null, null, null);
// assertNotNull(objectId);
return objectId;
@@ -277,12 +291,17 @@ public class CmisServiceTestHelper extends TestCase
List<CmisProperty> propertiesList = properties.getProperty();
CmisPropertyString cmisProperty = new CmisPropertyString();
cmisProperty.setName(CMISDictionaryModel.PROP_NAME);
cmisProperty.setPdid(CMISDictionaryModel.PROP_NAME);
cmisProperty.getValue().add(name);
CmisPropertyId idProperty = new CmisPropertyId();
idProperty.setPdid(CMISDictionaryModel.PROP_OBJECT_TYPE_ID);
idProperty.getValue().add(CMISDictionaryModel.FOLDER_TYPE_ID.getId());
propertiesList.add(cmisProperty);
propertiesList.add(idProperty);
// public String createFolder(String repositoryId, String typeId, CmisPropertiesType properties, String folderId)
String objectId = objectServicePort.createFolder(repositoryId, CMISDictionaryModel.FOLDER_TYPE_ID.getId(), properties, parentFolderId);
String objectId = objectServicePort.createFolder(repositoryId, properties, parentFolderId, null, null, null);
// assertNotNull(objectId);
return objectId;
}
@@ -294,43 +313,38 @@ public class CmisServiceTestHelper extends TestCase
List<CmisProperty> propertiesList = properties.getProperty();
CmisPropertyString cmisProperty = new CmisPropertyString();
cmisProperty.setName(CMISDictionaryModel.PROP_NAME);
cmisProperty.setPdid(CMISDictionaryModel.PROP_NAME);
cmisProperty.getValue().add(name);
CmisPropertyId idProperty = new CmisPropertyId();
idProperty.setPdid(CMISDictionaryModel.PROP_OBJECT_TYPE_ID);
idProperty.getValue().add(cmisTypeId.getId());
propertiesList.add(cmisProperty);
propertiesList.add(idProperty);
// public String createFolder(String repositoryId, String typeId, CmisPropertiesType properties, String folderId)
String objectId = objectServicePort.createFolder(repositoryId, cmisTypeId.getId(), properties, parentFolderId);
String objectId = objectServicePort.createFolder(repositoryId, properties, parentFolderId, null, null, null);
// assertNotNull(objectId);
return objectId;
}
public void deleteDocument(String documentId) throws Exception
{
objectServicePort.deleteObject(repositoryId, documentId);
objectServicePort.deleteObject(repositoryId, documentId, true);
assertNull("Document has not been deleted", getObjectProperties(documentId));
}
public void deleteFolder(String folderId) throws Exception
{
objectServicePort.deleteTree(repositoryId, folderId, EnumUnfileNonfolderObjects.DELETE, true);
objectServicePort.deleteTree(repositoryId, folderId, EnumUnfileObject.DELETE, true);
}
public GetPropertiesResponse getObjectProperties(String objectId)
public CmisObjectType getObjectProperties(String objectId)
{
GetProperties request = new GetProperties();
request.setRepositoryId(repositoryId);
request.setObjectId(objectId);
request.setReturnVersion(cmisObjectFactory.createGetPropertiesReturnVersion(EnumReturnVersion.LATEST));
request.setFilter(cmisObjectFactory.createGetPropertiesFilter("*"));
request.setIncludeAllowableActions(cmisObjectFactory.createGetPropertiesIncludeAllowableActions(true));
request.setIncludeRelationships(cmisObjectFactory.createGetPropertiesIncludeRelationships(EnumIncludeRelationships.BOTH));
GetPropertiesResponse response = null;
CmisObjectType response = null;
try
{
response = objectServicePort.getProperties(request);
response = objectServicePort.getProperties(repositoryId, objectId, "*", true, EnumIncludeRelationships.BOTH, false);
}
catch (Exception e)
{
@@ -339,22 +353,12 @@ public class CmisServiceTestHelper extends TestCase
return response;
}
public GetPropertiesResponse getObjectProperties(String objectId, String filter)
public CmisObjectType getObjectProperties(String objectId, String filter)
{
GetProperties request = new GetProperties();
request.setRepositoryId(repositoryId);
request.setObjectId(objectId);
request.setReturnVersion(cmisObjectFactory.createGetPropertiesReturnVersion(EnumReturnVersion.LATEST));
request.setFilter(cmisObjectFactory.createGetPropertiesFilter(filter));
request.setIncludeAllowableActions(cmisObjectFactory.createGetPropertiesIncludeAllowableActions(true));
request.setIncludeRelationships(cmisObjectFactory.createGetPropertiesIncludeRelationships(EnumIncludeRelationships.BOTH));
GetPropertiesResponse response = null;
CmisObjectType response = null;
try
{
response = objectServicePort.getProperties(request);
response = objectServicePort.getProperties(repositoryId, objectId, filter, true, EnumIncludeRelationships.BOTH, false);
}
catch (Exception e)
{
@@ -390,8 +394,8 @@ public class CmisServiceTestHelper extends TestCase
PropertyUtil propertiesUtil = new PropertyUtil();
try
{
GetChildrenResponse response = getChildren(companyHomeId, EnumTypesOfFileableObjects.FOLDERS, 0, "*");
for (CmisObjectType object : response.getObject())
List<CmisObjectType> response = getChildren(companyHomeId, 0, "*");
for (CmisObjectType object : response)
{
if (propertiesUtil.getCmisPropertyValue(object.getProperties(), CMISDictionaryModel.PROP_NAME, null).equals("User Homes"))
{
@@ -514,7 +518,7 @@ public class CmisServiceTestHelper extends TestCase
{
try
{
return repositoryServicePort.getRepositories().get(0).getRepositoryId();
return repositoryServicePort.getRepositories().get(0).getId();
}
catch (Exception e)
{
@@ -531,7 +535,7 @@ public class CmisServiceTestHelper extends TestCase
contentStream.setMimeType(MimetypeMap.MIMETYPE_TEXT_PLAIN);
DataHandler dataHandler = new DataHandler("Test content string :" + System.currentTimeMillis(), MimetypeMap.MIMETYPE_TEXT_PLAIN);
contentStream.setStream(dataHandler);
versioningServicePort.checkIn(repositoryId, documentId, isMajor, properties, contentStream, checkinComment);
versioningServicePort.checkIn(repositoryId, documentId, isMajor, properties, contentStream, checkinComment, null, null, null);
}
catch (Throwable e)
{
@@ -553,20 +557,14 @@ public class CmisServiceTestHelper extends TestCase
}
}
public GetAllVersionsResponse getAllVersions(String documentId)
public List<CmisObjectType> getAllVersions(String documentId)
{
GetAllVersionsResponse response = null;
List<CmisObjectType> response = null;
try
{
GetAllVersions request = new GetAllVersions();
request.setRepositoryId(repositoryId);
request.setVersionSeriesId(documentId);
request.setFilter(cmisObjectFactory.createGetAllVersionsFilter("*"));
request.setIncludeAllowableActions(cmisObjectFactory.createGetAllVersionsIncludeAllowableActions(Boolean.FALSE));
request.setIncludeRelationships(cmisObjectFactory.createGetAllVersionsIncludeRelationships(EnumIncludeRelationships.NONE));
response = versioningServicePort.getAllVersions(request);
assertNotNull(response.getObject());
response = versioningServicePort.getAllVersions(repositoryId, documentId, "*", false, EnumIncludeRelationships.NONE);
assertNotNull(response);
assertFalse(response.isEmpty());
}
catch (Throwable e)
{
@@ -583,12 +581,18 @@ public class CmisServiceTestHelper extends TestCase
List<CmisProperty> propertiesList = properties.getProperty();
CmisPropertyString cmisProperty = new CmisPropertyString();
cmisProperty.setName(CMISDictionaryModel.PROP_NAME);
cmisProperty.setPdid(CMISDictionaryModel.PROP_NAME);
cmisProperty.getValue().add(name);
propertiesList.add(cmisProperty);
CmisPropertyId idProperty = new CmisPropertyId();
idProperty.setPdid(CMISDictionaryModel.PROP_OBJECT_TYPE_ID);
idProperty.getValue().add(CMISDictionaryModel.RELATIONSHIP_TYPE_ID.getId());
propertiesList.add(cmisProperty);
propertiesList.add(idProperty);
// TODO: it need reimplementation according to valid Relationship type searching
// createRelationship(String repositoryId, String typeId, CmisPropertiesType properties, String sourceObjectId, String targetObjectId)
objectId = objectServicePort.createRelationship(repositoryId, CMISDictionaryModel.RELATIONSHIP_TYPE_ID.getId(), properties, documentId, folderId);
objectId = objectServicePort.createRelationship(repositoryId, properties, documentId, folderId, null, null, null);
assertNotNull(objectId);
return objectId;
@@ -602,13 +606,14 @@ public class CmisServiceTestHelper extends TestCase
CmisPropertiesType properties = new CmisPropertiesType();
List<CmisProperty> propertiesList = properties.getProperty();
CmisPropertyString cmisProperty = new CmisPropertyString();
cmisProperty.setName(propName);
cmisProperty.setPdid(propName);
cmisProperty.getValue().add(propValue);
propertiesList.add(cmisProperty);
Holder<String> documentIdHolder = new Holder<String>(documentId);
Holder<String> changeToken = new Holder<String>("");
// public void updateProperties(String repositoryId, Holder<String> objectId, String changeToken, CmisPropertiesType properties)
objectServicePort.updateProperties(repositoryId, documentIdHolder, new String(""), properties);
objectServicePort.updateProperties(repositoryId, documentIdHolder, changeToken, properties);
assertEquals(documentId, documentIdHolder.value);
return documentIdHolder.value;
@@ -638,21 +643,12 @@ public class CmisServiceTestHelper extends TestCase
}
}
public GetObjectParentsResponse getObjectParents(String objectId, String filter) throws Exception
public List<CmisObjectType> getObjectParents(String objectId, String filter) throws Exception
{
GetObjectParents request = cmisObjectFactory.createGetObjectParents();
request.setRepositoryId(repositoryId);
request.setObjectId(objectId);
request.setFilter("*");
request.setIncludeAllowableActions(cmisObjectFactory.createGetObjectParentsIncludeAllowableActions(true));
request.setIncludeRelationships(cmisObjectFactory.createGetObjectParentsIncludeRelationships(EnumIncludeRelationships.BOTH));
GetObjectParentsResponse response = null;
List<CmisObjectType> response = null;
try
{
response = navigationServicePort.getObjectParents(request);
response = navigationServicePort.getObjectParents(repositoryId, objectId, filter);
}
catch (Exception e)
{
@@ -661,17 +657,9 @@ public class CmisServiceTestHelper extends TestCase
return response;
}
public GetObjectParentsResponse getObjectParents(String objectId) throws Exception
public List<CmisObjectType> getObjectParents(String objectId) throws Exception
{
GetObjectParents request = cmisObjectFactory.createGetObjectParents();
request.setRepositoryId(repositoryId);
request.setObjectId(objectId);
GetObjectParentsResponse response = navigationServicePort.getObjectParents(request);
return response;
return navigationServicePort.getObjectParents(repositoryId, objectId, "");
}
public void setTextContentStream(String documentId, String newContent) throws Exception
@@ -686,41 +674,30 @@ public class CmisServiceTestHelper extends TestCase
Holder<String> documentIdHolder = new Holder<String>(documentId);
// public void setContentStream(String repositoryId, Holder<String> documentId, Boolean overwriteFlag, CmisContentStreamType contentStream)
objectServicePort.setContentStream(repositoryId, documentIdHolder, true, contentStream);
objectServicePort.setContentStream(repositoryId, documentIdHolder, true, "", contentStream);
}
public CmisContentStreamType getContentStream(String documentId) throws Exception
{
CmisContentStreamType result = null;
result = objectServicePort.getContentStream(repositoryId, documentId);
result = objectServicePort.getContentStream(repositoryId, documentId, "");
return result;
}
public GetChildrenResponse getChildren(String folderId, EnumTypesOfFileableObjects type, long maxItems, String filter) throws Exception
public List<CmisObjectType> getChildren(String folderId, long maxItems, String filter) throws Exception
{
GetChildren request = cmisObjectFactory.createGetChildren();
request.setRepositoryId(repositoryId);
request.setFolderId(folderId);
request.setFilter(cmisObjectFactory.createGetChildrenFilter(filter));
request.setMaxItems(cmisObjectFactory.createGetChildrenMaxItems(BigInteger.valueOf(maxItems)));
request.setSkipCount(cmisObjectFactory.createGetChildrenMaxItems(BigInteger.valueOf(0)));
request.setType(cmisObjectFactory.createGetChildrenType(type));
GetChildrenResponse response = null;
Holder<List<CmisObjectType>> response = new Holder<List<CmisObjectType>>(new LinkedList<CmisObjectType>());
Holder<Boolean> hasMoreItems = new Holder<Boolean>();
try
{
response = navigationServicePort.getChildren(request);
navigationServicePort.getChildren(repositoryId, folderId, filter, false, EnumIncludeRelationships.NONE, false, false, BigInteger.valueOf(maxItems), BigInteger.ZERO,
null, response, hasMoreItems);
}
catch (Exception e)
{
fail(e.getMessage());
}
return response;
return response.value;
}
}

View File

@@ -26,16 +26,17 @@ package org.alfresco.repo.cmis.ws;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import javax.xml.namespace.QName;
import javax.xml.ws.Holder;
import javax.xml.ws.Service;
public class DMDiscoveryServiceTest extends AbstractServiceTest
{
public final static String SERVICE_WSDL_LOCATION = CmisServiceTestHelper.ALFRESCO_URL + "/cmis/DiscoveryService?wsdl";
public final static QName SERVICE_NAME = new QName("http://docs.oasis-open.org/ns/cmis/ws/200901", "DiscoveryService");
public final static String STATEMENT = "SELECT * FROM Document";
public final static String STATEMENT = "SELECT * FROM cmis:document";
public DMDiscoveryServiceTest()
{
@@ -65,7 +66,7 @@ public class DMDiscoveryServiceTest extends AbstractServiceTest
public void testQuery() throws Exception
{
CmisQueryType request = new CmisQueryType();
Query request = new Query();
request.setRepositoryId(repositoryId);
request.setStatement(STATEMENT);
QueryResponse response = ((DiscoveryServicePort) servicePort).query(request);
@@ -86,4 +87,16 @@ public class DMDiscoveryServiceTest extends AbstractServiceTest
fail("The query returned no results");
}
}
public void testGetContentChanges() throws Exception
{
try
{
((DiscoveryServicePort) servicePort).getContentChanges(repositoryId, null, null, null, null, null, new Holder<List<CmisObjectType>>());
}
catch (CmisException e)
{
assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.RUNTIME));
}
}
}

View File

@@ -79,9 +79,9 @@ public class DMMultiFilingServiceTest extends AbstractServiceTest
{
((MultiFilingServicePort) servicePort).addObjectToFolder(repositoryId, documentId, anotherFolderId);
boolean found = false;
for (CmisObjectType cmisObjectType : helper.getChildren(anotherFolderId, EnumTypesOfFileableObjects.DOCUMENTS, 0, CMISDictionaryModel.PROP_OBJECT_ID).getObject())
for (CmisObjectType cmisObjectType : helper.getChildren(anotherFolderId, 0, CMISDictionaryModel.PROP_OBJECT_ID))
{
if ((found = propertiesUtil.getCmisPropertyValue(cmisObjectType.getProperties(), CMISDictionaryModel.PROP_OBJECT_ID, null).equals(documentId)))
if ((found = documentId.equals(getIdProperty(cmisObjectType.getProperties(), CMISDictionaryModel.PROP_OBJECT_ID))))
{
break;
}

View File

@@ -25,6 +25,8 @@
package org.alfresco.repo.cmis.ws;
import java.math.BigInteger;
import java.util.Collections;
import java.util.List;
import javax.xml.ws.Holder;
@@ -81,40 +83,35 @@ public class DMNavigationServiceTest extends AbstractServiceTest
helper.versioningServicePort.checkOut(repositoryId, documentIdHolder1, contentCopied);
assertTrue(contentCopied.value);
GetCheckedoutDocsResponse response;
response = getCheckedoutDocs(null, 0, 0);
List<CmisObjectType> result = getCheckedoutDocs(null, 0, 0);
if (response.getObject().size() < 2)
if (result == null || result.size() < 2)
{
// check in
helper.versioningServicePort.checkIn(repositoryId, documentIdHolder, null, null, null, null);
helper.versioningServicePort.checkIn(repositoryId, documentIdHolder, null, null, null, null, null, null, null);
fail("Not all checkout docs have been found");
}
validateResponse(response.getObject());
validateResponse(result);
// assertTrue("Checked out document has not been found ", isExistItemWithProperty(response.getObject(), CMISMapping.PROP_OBJECT_ID, documentId));
// assertTrue("Checked out document has not been found ", isExistItemWithProperty(response.getObject(), CMISMapping.PROP_OBJECT_ID, documentId1));
response = getCheckedoutDocs(null, 1, 0);
assertTrue(response.getObject().size() == 1);
assertTrue(response.hasMoreItems);
result = getCheckedoutDocs(null, 1, 0);
assertNotNull(result);
assertTrue(result.size() == 1);
// check in
helper.versioningServicePort.checkIn(repositoryId, documentIdHolder, null, null, null, null);
helper.versioningServicePort.checkIn(repositoryId, documentIdHolder, null, null, null, null, null, null, null);
response = getCheckedoutDocs(companyHomeId, 0, 0);
assertFalse("Wrong results", isExistItemWithProperty(response.getObject(), CMISDictionaryModel.PROP_NAME, documentName));
result = getCheckedoutDocs(companyHomeId, 0, 0);
assertFalse("Wrong results", isExistItemWithProperty(result, CMISDictionaryModel.PROP_NAME, documentName));
}
public void testGetChildren() throws Exception
{
GetChildrenResponse response;
response = getChildren(companyHomeId, EnumTypesOfFileableObjects.ANY, 0);
List<CmisObjectType> response = getChildren(companyHomeId, 100);
if ((response != null) && (response.getObject() != null))
if ((response != null))
{
validateResponse(response.getObject());
validateResponse(response);
}
else
{
@@ -128,29 +125,10 @@ public class DMNavigationServiceTest extends AbstractServiceTest
@SuppressWarnings("unused")
String documentId1 = helper.createDocument(documentName1, folderId, CMISDictionaryModel.DOCUMENT_TYPE_ID, EnumVersioningState.MAJOR);
response = getChildren(folderId, EnumTypesOfFileableObjects.ANY, 0);
assertEquals(2, response.getObject().size());
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(folderName1));
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(1).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(documentName1));
response = getChildren(folderId, EnumTypesOfFileableObjects.FOLDERS, 0);
assertTrue(response.getObject().size() == 1);
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(folderName1));
response = getChildren(folderId, EnumTypesOfFileableObjects.DOCUMENTS, 0);
assertTrue(response.getObject().size() == 1);
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(documentName1));
// FIXME: bug • If maxItems > 0, Bool hasMoreItems
// Should return 1 item
response = getChildren(folderId, EnumTypesOfFileableObjects.ANY, 1);
assertTrue("Actual size is: " + response.getObject().size(), response.getObject().size() == 1);
assertTrue(response.hasMoreItems);
// • If “includeAllowableActions” is TRUE, the repository will return the allowable actions for the current user for each child object as part of the output.
// • "IncludeRelationships" indicates whether relationships are also returned for each returned object. If it is set to "source" or "target", relationships for which the
// returned object is a source, or respectively a target, will also be returned. If it is set to "both", relationships for which the returned object is either a source or a
// target will be returned. If it is set to "none", relationships are not returned.
response = getChildren(folderId, 2);
assertEquals(2, response.size());
assertTrue(getStringProperty(response.get(0).getProperties(), CMISDictionaryModel.PROP_NAME).equals(folderName1));
assertTrue(getStringProperty(response.get(1).getProperties(), CMISDictionaryModel.PROP_NAME).equals(documentName1));
// TODO: not implemented
// assertNotNull(response.getObject().get(0).getAllowableActions());
@@ -160,19 +138,16 @@ public class DMNavigationServiceTest extends AbstractServiceTest
// response = getChildren(folderId, EnumTypesOfFileableObjects.DOCUMENTS, 0, CMISMapping.PROP_NAME);
// assertNotNull(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISMapping.PROP_NAME));
response = getChildren(folderId);
assertTrue(response.getObject().size() == 2);
}
public void testGetDescendants() throws Exception
{
GetDescendantsResponse response = getDescendants(companyHomeId, EnumTypesOfFileableObjects.DOCUMENTS, 10);
List<CmisObjectType> response = getDescendants(companyHomeId, BigInteger.valueOf(5));
if ((response != null) && (response.getObject() != null))
if ((response != null))
{
validateResponse(response.getObject());
validateResponse(response);
}
else
{
@@ -185,48 +160,60 @@ public class DMNavigationServiceTest extends AbstractServiceTest
@SuppressWarnings("unused")
String documentId1 = helper.createDocument(documentName, folderId1, CMISDictionaryModel.DOCUMENT_TYPE_ID, EnumVersioningState.MAJOR);
response = getDescendants(folderId, EnumTypesOfFileableObjects.FOLDERS, 1);
assertTrue(response.getObject().size() == 1);
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(folderName));
response = getDescendants(folderId, EnumTypesOfFileableObjects.DOCUMENTS, 2);
assertTrue(response.getObject().size() == 1);
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(documentName));
response = getDescendants(folderId, EnumTypesOfFileableObjects.ANY, 2);
assertTrue(response.getObject().size() == 2);
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(folderName));
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(1).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(documentName));
response = getDescendants(folderId, EnumTypesOfFileableObjects.ANY, -1);
assertTrue(response.getObject().size() == 2);
response = getDescendants(folderId1, null);
assertTrue(response.size() == 1);
assertTrue(getStringProperty(response.get(0).getProperties(), CMISDictionaryModel.PROP_NAME).equals(documentName));
// test with out option parameters
response = getDescendants(folderId);
assertTrue(response.getObject().size() == 1);
response = getDescendants(folderId1, BigInteger.TEN);
assertTrue(response.size() == 1);
assertTrue(getStringProperty(response.get(0).getProperties(), CMISDictionaryModel.PROP_NAME).equals(documentName));
response = getDescendants(folderId, EnumTypesOfFileableObjects.DOCUMENTS, 2);
// TODO: not implemented
// assertNotNull(response.getObject().get(0).getAllowableActions());
// assertNotNull(response.getObject().get(0).getRelationship());
// Filter test
// response = getDescendants(folderId, EnumTypesOfFileableObjects.DOCUMENTS, 2, CMISMapping.PROP_NAME);
// assertTrue(response.getObject().size() == 1);
// assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISMapping.PROP_NAME).equals(documentName));
helper.deleteFolder(folderId1);
}
public void testGetFolderTree() throws Exception
{
List<CmisObjectType> response = getFolderTree(companyHomeId, BigInteger.valueOf(5));
if ((response != null))
{
validateResponse(response);
}
else
{
fail("response is null");
}
folderName = "Test Cmis Folder (" + System.currentTimeMillis() + ")";
String folderId1 = helper.createFolder(folderName, folderId);
documentName = "Test cmis document (" + System.currentTimeMillis() + ")";
@SuppressWarnings("unused")
String documentId1 = helper.createDocument(documentName, folderId1, CMISDictionaryModel.DOCUMENT_TYPE_ID, EnumVersioningState.MAJOR);
response = getFolderTree(folderId, null);
assertTrue(response.size() == 1);
assertTrue(getStringProperty(response.get(0).getProperties(), CMISDictionaryModel.PROP_NAME).equals(folderName));
// TODO: not implemented
// assertNotNull(response.getObject().get(0).getAllowableActions());
// assertNotNull(response.getObject().get(0).getRelationship());
helper.deleteFolder(folderId1);
}
public void testGetFolderParent() throws Exception
{
GetFolderParentResponse response;
response = getFolderParent(folderId, false);
CmisObjectType response = getFolderParent(folderId);
if ((response != null) && (response.getObject() != null))
if ((response != null))
{
validateResponse(response.getObject());
validateResponse(Collections.singletonList(response));
}
else
{
@@ -238,26 +225,23 @@ public class DMNavigationServiceTest extends AbstractServiceTest
String folderName1 = "Test Cmis Folder (" + System.currentTimeMillis() + ")";
folderId1 = helper.createFolder(folderName1, folderId);
response = getFolderParent(folderId1, false);
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(folderName));
response = getFolderParent(folderId1);
assertTrue(getStringProperty(response.getProperties(), CMISDictionaryModel.PROP_NAME).equals(folderName));
String folderName2 = "Test Cmis Folder (" + System.currentTimeMillis() + ")";
String folderId2 = helper.createFolder(folderName2, folderId1);
response = getFolderParent(folderId2, true);
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(folderName1));
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(1).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(folderName));
assertTrue(response.getObject().size() >= 3);
response = getFolderParent(folderId2, CMISDictionaryModel.PROP_NAME);
assertTrue(getStringProperty(response.getProperties(), CMISDictionaryModel.PROP_NAME).equals(folderName1));
}
public void testGetObjectParents() throws Exception
{
GetObjectParentsResponse response = helper.getObjectParents(documentId, "*");
List<CmisObjectType> response = helper.getObjectParents(documentId, "*");
if ((response != null) && (response.getObject() != null))
if ((response != null))
{
validateResponse(response.getObject());
validateResponse(response);
}
else
{
@@ -273,118 +257,41 @@ public class DMNavigationServiceTest extends AbstractServiceTest
documentId1 = helper.createDocument(documentName1, folderId1, CMISDictionaryModel.DOCUMENT_TYPE_ID, EnumVersioningState.MAJOR);
response = helper.getObjectParents(documentId1, "*");
assertTrue(response.getObject().size() == 1);
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(folderName1));
// TODO: not implemented
// assertNotNull(response.getObject().get(0).getAllowableActions());
// assertNotNull(response.getObject().get(0).getRelationship());
// filters
// response = getObjectParents(documentId1, CMISMapping.PROP_NAME);
// assertTrue(response.getObject().size() >= 2);
// assertNotNull(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISMapping.PROP_NAME));
assertTrue(response.size() == 1);
assertTrue(getStringProperty(response.get(0).getProperties(), CMISDictionaryModel.PROP_NAME).equals(folderName1));
response = helper.getObjectParents(documentId1);
assertTrue(response.getObject().size() == 1);
assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(folderName1));
// assertTrue(propertiesUtil.getCmisPropertyValue(response.getObject().get(1).getProperties(), CMISMapping.PROP_NAME).equals(folderName));
assertTrue(response.size() == 1);
assertTrue(getStringProperty(response.get(0).getProperties(), CMISDictionaryModel.PROP_NAME).equals(folderName1));
}
private GetDescendantsResponse getDescendants(String folderId, EnumTypesOfFileableObjects type, long depth) throws Exception
private List<CmisObjectType> getDescendants(String folderId, BigInteger depth) throws Exception
{
GetDescendants request = cmisObjectFactory.createGetDescendants();
request.setRepositoryId(repositoryId);
request.setFolderId(folderId);
request.setType(type);
request.setDepth(cmisObjectFactory.createGetDescendantsDepth(BigInteger.valueOf(depth)));
request.setFilter(cmisObjectFactory.createGetPropertiesFilter("*"));
request.setIncludeAllowableActions(cmisObjectFactory.createGetDescendantsIncludeAllowableActions(true));
request.setIncludeRelationships(cmisObjectFactory.createGetDescendantsIncludeRelationships(EnumIncludeRelationships.BOTH));
GetDescendantsResponse response = ((NavigationServicePort) servicePort).getDescendants(request);
return response;
List<CmisObjectType> result = ((NavigationServicePort) servicePort).getDescendants(repositoryId, folderId, depth, "*", null, null, null, null);
return result;
}
private GetDescendantsResponse getDescendants(String folderId) throws Exception
private List<CmisObjectType> getFolderTree(String folderId, BigInteger depth) throws Exception
{
GetDescendants request = cmisObjectFactory.createGetDescendants();
request.setRepositoryId(repositoryId);
request.setFolderId(folderId);
GetDescendantsResponse response = ((NavigationServicePort) servicePort).getDescendants(request);
return response;
List<CmisObjectType> result = ((NavigationServicePort) servicePort).getFolderTree(repositoryId, folderId, "*", depth, null, null);
return result;
}
private GetChildrenResponse getChildren(String folderId, EnumTypesOfFileableObjects type, long maxItems) throws Exception
private List<CmisObjectType> getChildren(String folderId, int maxItems) throws Exception
{
GetChildren request = cmisObjectFactory.createGetChildren();
request.setRepositoryId(repositoryId);
request.setFolderId(folderId);
request.setFilter(cmisObjectFactory.createGetChildrenFilter("*"));
request.setMaxItems(cmisObjectFactory.createGetChildrenMaxItems(BigInteger.valueOf(maxItems)));
request.setSkipCount(cmisObjectFactory.createGetChildrenSkipCount(BigInteger.valueOf(0)));
request.setType(cmisObjectFactory.createGetChildrenType(type));
GetChildrenResponse response = ((NavigationServicePort) servicePort).getChildren(request);
return response;
Holder<List<CmisObjectType>> resultHolder = new Holder<List<CmisObjectType>>();
((NavigationServicePort) servicePort).getChildren(repositoryId, folderId, "*", false, null, null, null, BigInteger.valueOf(maxItems), BigInteger.valueOf(0), null,
resultHolder, new Holder<Boolean>());
return resultHolder.value;
}
private GetChildrenResponse getChildren(String folderId) throws Exception
public CmisObjectType getFolderParent(String folderId, String filter) throws Exception
{
GetChildren request = cmisObjectFactory.createGetChildren();
request.setRepositoryId(repositoryId);
request.setFolderId(folderId);
GetChildrenResponse response = ((NavigationServicePort) servicePort).getChildren(request);
return response;
}
public GetFolderParentResponse getFolderParent(String folderId, boolean setReturnToRoot) throws Exception
{
GetFolderParent request = cmisObjectFactory.createGetFolderParent();
request.setRepositoryId(repositoryId);
request.setFolderId(folderId);
request.setFilter("*");
request.setReturnToRoot(cmisObjectFactory.createGetFolderParentReturnToRoot(setReturnToRoot));
request.setIncludeAllowableActions(cmisObjectFactory.createGetFolderParentIncludeAllowableActions(true));
request.setIncludeRelationships(cmisObjectFactory.createGetFolderParentIncludeRelationships(EnumIncludeRelationships.BOTH));
GetFolderParentResponse response = ((NavigationServicePort) servicePort).getFolderParent(request);
return response;
}
public GetFolderParentResponse getFolderParent(String folderId, String filter) throws Exception
{
GetFolderParent request = cmisObjectFactory.createGetFolderParent();
request.setRepositoryId(repositoryId);
request.setFolderId(folderId);
request.setFilter(filter);
request.setIncludeAllowableActions(cmisObjectFactory.createGetFolderParentIncludeAllowableActions(true));
request.setIncludeRelationships(cmisObjectFactory.createGetFolderParentIncludeRelationships(EnumIncludeRelationships.BOTH));
GetFolderParentResponse response = null;
CmisObjectType response = null;
try
{
response = ((NavigationServicePort) servicePort).getFolderParent(request);
response = ((NavigationServicePort) servicePort).getFolderParent(repositoryId, folderId, "*");
}
catch (Exception e)
{
@@ -393,34 +300,17 @@ public class DMNavigationServiceTest extends AbstractServiceTest
return response;
}
public GetFolderParentResponse getFolderParent(String folderId) throws Exception
public CmisObjectType getFolderParent(String folderId) throws Exception
{
GetFolderParent request = cmisObjectFactory.createGetFolderParent();
request.setRepositoryId(repositoryId);
request.setFolderId(folderId);
GetFolderParentResponse response = ((NavigationServicePort) servicePort).getFolderParent(request);
CmisObjectType response = ((NavigationServicePort) servicePort).getFolderParent(repositoryId, folderId, "*");
return response;
}
private GetCheckedoutDocsResponse getCheckedoutDocs(String folderId, long maxItems, long skipCount) throws Exception
private List<CmisObjectType> getCheckedoutDocs(String folderId, long maxItems, long skipCount) throws Exception
{
GetCheckedoutDocs request = cmisObjectFactory.createGetCheckedoutDocs();
request.setRepositoryId(repositoryId);
request.setFolderId(cmisObjectFactory.createGetCheckedoutDocsFolderId(folderId));
request.setFilter(cmisObjectFactory.createGetCheckedoutDocsFilter("*"));
request.setMaxItems(cmisObjectFactory.createGetCheckedoutDocsMaxItems(BigInteger.valueOf(maxItems)));
request.setSkipCount(cmisObjectFactory.createGetCheckedoutDocsSkipCount(BigInteger.valueOf(skipCount)));
request.setIncludeAllowableActions(cmisObjectFactory.createGetCheckedoutDocsIncludeAllowableActions(true));
request.setIncludeRelationships(cmisObjectFactory.createGetCheckedoutDocsIncludeRelationships(EnumIncludeRelationships.BOTH));
GetCheckedoutDocsResponse response = ((NavigationServicePort) servicePort).getCheckedoutDocs(request);
return response;
Holder<List<CmisObjectType>> resultHolder = new Holder<List<CmisObjectType>>();
((NavigationServicePort) servicePort).getCheckedOutDocs(repositoryId, folderId, "*", null, false, null, BigInteger.valueOf(maxItems), BigInteger.valueOf(skipCount),
resultHolder, new Holder<Boolean>());
return resultHolder.value;
}
}

View File

@@ -38,7 +38,7 @@ import org.alfresco.repo.content.MimetypeMap;
public class DMObjectServiceTest extends AbstractServiceTest
{
GetPropertiesResponse propertiesResponse;
private CmisObjectType propertiesObject;
public DMObjectServiceTest()
{
@@ -79,7 +79,7 @@ public class DMObjectServiceTest extends AbstractServiceTest
CmisPropertiesType properties = new CmisPropertiesType();
List<CmisProperty> propertiesList = properties.getProperty();
CmisPropertyString cmisProperty = new CmisPropertyString();
cmisProperty.setName(CMISDictionaryModel.PROP_NAME);
cmisProperty.setLocalname(CMISDictionaryModel.PROP_NAME);
cmisProperty.getValue().add(documentName);
propertiesList.add(cmisProperty);
@@ -97,17 +97,19 @@ public class DMObjectServiceTest extends AbstractServiceTest
// MAJOR
documentName = "Test cmis document (" + System.currentTimeMillis() + ")";
documentId = helper.createDocument(documentName, folderId, CMISDictionaryModel.DOCUMENT_TYPE_ID, EnumVersioningState.MAJOR);
propertiesResponse = helper.getObjectProperties(documentId);
// assertTrue(getPropertyBooleanValue(propertiesResponse, CMISMapping.PROP_IS_MAJOR_VERSION));
assertFalse(getPropertyBooleanValue(propertiesResponse, CMISDictionaryModel.PROP_IS_VERSION_SERIES_CHECKED_OUT));
propertiesObject = helper.getObjectProperties(documentId);
assertObjectPropertiesNotNull(propertiesObject);
// assertTrue(getPropertyBooleanValue(propertiesObject, CMISMapping.PROP_IS_MAJOR_VERSION));
assertFalse(getBooleanProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_IS_VERSION_SERIES_CHECKED_OUT));
helper.deleteDocument(documentId);
// MINOR
documentName = "Test cmis document (" + System.currentTimeMillis() + ")";
documentId = helper.createDocument(documentName, folderId, CMISDictionaryModel.DOCUMENT_TYPE_ID, EnumVersioningState.MINOR);
propertiesResponse = helper.getObjectProperties(documentId);
assertFalse(getPropertyBooleanValue(propertiesResponse, CMISDictionaryModel.PROP_IS_VERSION_SERIES_CHECKED_OUT));
// assertTrue(getPropertyBooleanValue(propertiesResponse, CMISMapping.PROP_IS_MAJOR_VERSION));
propertiesObject = helper.getObjectProperties(documentId);
assertObjectPropertiesNotNull(propertiesObject);
assertFalse(getBooleanProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_IS_VERSION_SERIES_CHECKED_OUT));
// assertTrue(getPropertyBooleanValue(propertiesObject, CMISMapping.PROP_IS_MAJOR_VERSION));
helper.deleteDocument(documentId);
}
@@ -117,16 +119,18 @@ public class DMObjectServiceTest extends AbstractServiceTest
// CHECKEDOUT
documentName = "Test cmis document (" + System.currentTimeMillis() + ")";
String documentId = helper.createDocument(documentName, folderId, CMISDictionaryModel.DOCUMENT_TYPE_ID, EnumVersioningState.CHECKEDOUT);
propertiesResponse = helper.getObjectProperties(documentId);
assertNotNull(getPropertyValue(propertiesResponse, CMISDictionaryModel.PROP_VERSION_SERIES_ID));
propertiesObject = helper.getObjectProperties(documentId);
assertObjectPropertiesNotNull(propertiesObject);
assertNotNull(getIdProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_VERSION_SERIES_ID));
// Bug
assertTrue(getPropertyBooleanValue(propertiesResponse, CMISDictionaryModel.PROP_IS_VERSION_SERIES_CHECKED_OUT));
assertNotNull(getPropertyValue(propertiesResponse, CMISDictionaryModel.PROP_VERSION_SERIES_CHECKED_OUT_BY));
assertTrue(getPropertyValue(propertiesResponse, CMISDictionaryModel.PROP_VERSION_SERIES_CHECKED_OUT_ID).equals(documentId));
assertTrue(getBooleanProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_IS_VERSION_SERIES_CHECKED_OUT));
assertNotNull(getStringProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_VERSION_SERIES_CHECKED_OUT_BY));
Holder<String> documentIdHolder = new Holder<String>(documentId);
helper.checkIn(documentIdHolder, "checkin Comment", true);
assertTrue(getPropertyValue(propertiesResponse, CMISDictionaryModel.PROP_VERSION_LABEL).equals("1.0"));
assertTrue(getStringProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_VERSION_LABEL).equals("1.0"));
// documentId = (String) propertiesUtil.getCmisPropertyValue(response.getObject().iterator().next().getProperties(), CMISMapping.PROP_OBJECT_ID);
// deleteDocument(documentId);
@@ -158,9 +162,12 @@ public class DMObjectServiceTest extends AbstractServiceTest
folderName = "Test Cmis Folder (" + System.currentTimeMillis() + ")" + "testCreateFolder";
folderId1 = helper.createFolder(folderName, folderId, CMISDictionaryModel.FOLDER_TYPE_ID);
propertiesResponse = helper.getObjectProperties(folderId1);
assertNotNull(getPropertyValue(propertiesResponse, CMISDictionaryModel.PROP_NAME));
assertNotNull(getPropertyValue(propertiesResponse, CMISDictionaryModel.PROP_PARENT_ID));
propertiesObject = helper.getObjectProperties(folderId1);
assertObjectPropertiesNotNull(propertiesObject);
assertNotNull(getStringProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_NAME));
assertNotNull(getIdProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_PARENT_ID));
helper.deleteFolder(folderId1);
}
@@ -169,25 +176,28 @@ public class DMObjectServiceTest extends AbstractServiceTest
{
String filter;
filter = "*";
propertiesResponse = helper.getObjectProperties(documentId, filter);
assertNotNull(getPropertyValue(propertiesResponse, CMISDictionaryModel.PROP_NAME));
assertNotNull(getPropertyValue(propertiesResponse, CMISDictionaryModel.PROP_CONTENT_STREAM_FILENAME));
assertNotNull(getPropertyValue(propertiesResponse, CMISDictionaryModel.PROP_CONTENT_STREAM_MIME_TYPE));
assertTrue(getPropertyBooleanValue(propertiesResponse, CMISDictionaryModel.PROP_IS_LATEST_VERSION));
propertiesObject = helper.getObjectProperties(documentId, filter);
assertObjectPropertiesNotNull(propertiesObject);
assertNotNull(getStringProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_NAME));
assertNotNull(getStringProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_CONTENT_STREAM_FILENAME));
assertNotNull(getStringProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_CONTENT_STREAM_MIME_TYPE));
assertTrue(getBooleanProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_IS_LATEST_VERSION));
// A property filter is a string that contains either (to return all properties) or a comma-separated list of property names (to return selected properties). An
// arbitrary number of spaces are allowed before or after each comma.
// filter = "*Stream*";
// propertiesResponse = helper.getObjectProperties(documentId, filter);
// assertNotNull("filter test", getPropertyValue(propertiesResponse, CMISMapping.PROP_NAME));
// assertNotNull("filter test", getPropertyValue(propertiesResponse, CMISMapping.PROP_CONTENT_STREAM_LENGTH));
// propertiesObject = helper.getObjectProperties(documentId, filter);
// assertNotNull("filter test", getPropertyValue(propertiesObject, CMISMapping.PROP_NAME));
// assertNotNull("filter test", getPropertyValue(propertiesObject, CMISMapping.PROP_CONTENT_STREAM_LENGTH));
}
public void testGetDocumentProperties_Versioning() throws Exception
{
GetPropertiesResponse response = helper.getObjectProperties(documentId);
CmisObjectType response = helper.getObjectProperties(documentId);
Holder<String> documentIdHolder = new Holder<String>(documentId);
Holder<Boolean> contentCopied = new Holder<Boolean>();
@@ -195,34 +205,37 @@ public class DMObjectServiceTest extends AbstractServiceTest
helper.checkOut(documentIdHolder, contentCopied);
// new version of doc
assertObjectPropertiesNotNull(response);
response = helper.getObjectProperties(documentIdHolder.value);
assertNotNull(getPropertyValue(response, CMISDictionaryModel.PROP_NAME));
assertNotNull(getPropertyValue(response, CMISDictionaryModel.PROP_CONTENT_STREAM_FILENAME));
assertNotNull(getPropertyValue(response, CMISDictionaryModel.PROP_CONTENT_STREAM_MIME_TYPE));
assertTrue(getPropertyBooleanValue(response, CMISDictionaryModel.PROP_IS_VERSION_SERIES_CHECKED_OUT));
assertNotNull(getPropertyValue(response, CMISDictionaryModel.PROP_VERSION_SERIES_CHECKED_OUT_BY));
assertNotNull(getStringProperty(response.getProperties(), CMISDictionaryModel.PROP_NAME));
assertNotNull(getStringProperty(response.getProperties(), CMISDictionaryModel.PROP_CONTENT_STREAM_FILENAME));
assertNotNull(getStringProperty(response.getProperties(), CMISDictionaryModel.PROP_CONTENT_STREAM_MIME_TYPE));
assertTrue(getBooleanProperty(response.getProperties(), CMISDictionaryModel.PROP_IS_VERSION_SERIES_CHECKED_OUT));
assertNotNull(getStringProperty(response.getProperties(), CMISDictionaryModel.PROP_VERSION_SERIES_CHECKED_OUT_BY));
helper.checkIn(documentIdHolder, checkinComment, true);
response = helper.getObjectProperties(documentId);
assertNotNull(getPropertyValue(response, CMISDictionaryModel.PROP_NAME));
assertNotNull(getPropertyValue(response, CMISDictionaryModel.PROP_CONTENT_STREAM_FILENAME));
assertNotNull(getPropertyValue(response, CMISDictionaryModel.PROP_CONTENT_STREAM_MIME_TYPE));
assertTrue(getPropertyBooleanValue(response, CMISDictionaryModel.PROP_IS_LATEST_VERSION));
assertTrue(getPropertyBooleanValue(response, CMISDictionaryModel.PROP_IS_LATEST_MAJOR_VERSION));
assertTrue(getPropertyBooleanValue(response, CMISDictionaryModel.PROP_IS_MAJOR_VERSION));
assertObjectPropertiesNotNull(response);
assertNotNull(getStringProperty(response.getProperties(), CMISDictionaryModel.PROP_NAME));
assertNotNull(getStringProperty(response.getProperties(), CMISDictionaryModel.PROP_CONTENT_STREAM_FILENAME));
assertNotNull(getStringProperty(response.getProperties(), CMISDictionaryModel.PROP_CONTENT_STREAM_MIME_TYPE));
assertTrue(getBooleanProperty(response.getProperties(), CMISDictionaryModel.PROP_IS_LATEST_VERSION));
assertTrue(getBooleanProperty(response.getProperties(), CMISDictionaryModel.PROP_IS_LATEST_MAJOR_VERSION));
assertTrue(getBooleanProperty(response.getProperties(), CMISDictionaryModel.PROP_IS_MAJOR_VERSION));
// Returns the list of all document versions for the specified version series, sorted by CREATION_DATE descending.
GetAllVersionsResponse responseVersions = helper.getAllVersions(documentId);
List<CmisObjectType> responseVersions = helper.getAllVersions(documentId);
assertNotNull(responseVersions);
// Last version
assertEquals(3, responseVersions.getObject().size());
assertTrue("Initial version was not returned", isExistItemWithProperty(responseVersions.getObject(), CMISDictionaryModel.PROP_VERSION_LABEL, "1.0"));
assertTrue("Invalid response ordering: First object is not latest version", (Boolean) propertiesUtil.getCmisPropertyValue(responseVersions.getObject().get(0)
.getProperties(), CMISDictionaryModel.PROP_IS_LATEST_VERSION, null));
assertTrue("Invalid response ordering: Second object is not head version", (Boolean) propertiesUtil.getCmisPropertyValue(responseVersions.getObject().get(1)
.getProperties(), CMISDictionaryModel.PROP_IS_LATEST_VERSION, null));
assertEquals(2, responseVersions.size());
assertTrue("Initial version was not returned", isExistItemWithProperty(responseVersions, CMISDictionaryModel.PROP_VERSION_LABEL, "1.0"));
assertTrue("Invalid response ordering: First object is not latest version", getBooleanProperty(responseVersions.get(0).getProperties(),
CMISDictionaryModel.PROP_IS_LATEST_VERSION));
assertEquals("Invalid response ordering: Second object is not head version", "1.0", getStringProperty(responseVersions.get(1).getProperties(),
CMISDictionaryModel.PROP_VERSION_LABEL));
}
// This test don't asserts until CMIS setProperty()/setProperties() logic is unimplemented
@@ -233,9 +246,9 @@ public class DMObjectServiceTest extends AbstractServiceTest
// object is a source, or respectively a target, will also be returned. If it is set to "both", relationships for which the returned object is either a source or a target
// will be returned. If it is set to "none", relationships are not returned.
GetPropertiesResponse response = helper.getObjectProperties(documentId);
CmisObjectType response = helper.getObjectProperties(documentId);
@SuppressWarnings("unused")
CmisObjectType object = response.getObject();
CmisObjectType object = response;
// TODO: not implemented
// assertNotNull(object.getAllowableActions());
// assertNotNull(object.getRelationship());
@@ -248,7 +261,7 @@ public class DMObjectServiceTest extends AbstractServiceTest
request.setRepositoryId("invalid OID");
try
{
((ObjectServicePort) servicePort).getProperties(request);
((ObjectServicePort) servicePort).getProperties("invalid OID", "invalid OID", "*", null, null, null);
}
catch (CmisException e)
{
@@ -262,7 +275,7 @@ public class DMObjectServiceTest extends AbstractServiceTest
contStream.setDocumentId(documentId);
contStream.setRepositoryId(repositoryId);
CmisContentStreamType result = ((ObjectServicePort) servicePort).getContentStream(repositoryId, documentId);
CmisContentStreamType result = ((ObjectServicePort) servicePort).getContentStream(repositoryId, documentId, null);
if (result.getLength().intValue() == 0)
{
fail();
@@ -271,7 +284,7 @@ public class DMObjectServiceTest extends AbstractServiceTest
{
contStream.setDocumentId(documentId + "s");
{
result = ((ObjectServicePort) servicePort).getContentStream(repositoryId, documentId);
result = ((ObjectServicePort) servicePort).getContentStream(repositoryId, documentId, null);
}
}
catch (Throwable e)
@@ -287,7 +300,7 @@ public class DMObjectServiceTest extends AbstractServiceTest
helper.checkOut(documentIdHolder, contentCopied);
result = ((ObjectServicePort) servicePort).getContentStream(repositoryId, documentIdHolder.value);
result = ((ObjectServicePort) servicePort).getContentStream(repositoryId, documentIdHolder.value, null);
if (result.getLength().intValue() == 0)
{
fail();
@@ -323,19 +336,14 @@ public class DMObjectServiceTest extends AbstractServiceTest
public void testDeleteContentStream() throws Exception
{
// public void deleteContentStream(String repositoryId, String documentId)
((ObjectServicePort) servicePort).deleteContentStream(repositoryId, documentId);
((ObjectServicePort) servicePort).deleteContentStream(repositoryId, new Holder<String>(documentId), null);
try
{
@SuppressWarnings("unused")
GetPropertiesOfLatestVersion request = new GetPropertiesOfLatestVersion();
request.setRepositoryId(repositoryId);
request.setFilter(cmisObjectFactory.createGetPropertiesOfLatestVersionFilter("*"));
request.setMajorVersion(Boolean.FALSE);
request.setVersionSeriesId(documentId);
GetPropertiesOfLatestVersionResponse response = helper.versioningServicePort.getPropertiesOfLatestVersion(request);
documentId = (String) propertiesUtil.getCmisPropertyValue(response.getObject().getProperties(), CMISDictionaryModel.PROP_OBJECT_ID, null);
((ObjectServicePort) servicePort).getContentStream(repositoryId, documentId);
String filter = cmisObjectFactory.createGetPropertiesOfLatestVersionFilter("*").getValue();
CmisObjectType object = helper.versioningServicePort.getPropertiesOfLatestVersion(repositoryId, documentId, false, filter, null);
documentId = getIdProperty(object.getProperties(), CMISDictionaryModel.PROP_OBJECT_ID);
((ObjectServicePort) servicePort).getContentStream(repositoryId, documentId, null);
fail("Content stream was not deleted");
}
catch (Exception e)
@@ -344,15 +352,16 @@ public class DMObjectServiceTest extends AbstractServiceTest
}
// on content update and on content delete new version should be created
GetAllVersionsResponse responseVersions = helper.getAllVersions(documentId);
assertTrue("new version of document should be created", responseVersions.getObject().size() > 1);
List<CmisObjectType> responseVersions = helper.getAllVersions(documentId);
assertNotNull(responseVersions);
assertTrue("new version of document should be created", responseVersions.size() > 1);
}
public void testDeleteObject() throws Exception
{
// public void deleteObject(String repositoryId, String objectId)
((ObjectServicePort) servicePort).deleteObject(repositoryId, documentId);
((ObjectServicePort) servicePort).deleteObject(repositoryId, documentId, Boolean.TRUE);
assertNull(helper.getObjectProperties(documentId));
}
@@ -368,7 +377,7 @@ public class DMObjectServiceTest extends AbstractServiceTest
// Try to delete folder with child
try
{
((ObjectServicePort) servicePort).deleteObject(repositoryId, folderId);
((ObjectServicePort) servicePort).deleteObject(repositoryId, folderId, Boolean.TRUE);
fail("Try to delere folder with child");
}
catch (CmisException e)
@@ -379,7 +388,7 @@ public class DMObjectServiceTest extends AbstractServiceTest
// Try to delete root folder
try
{
((ObjectServicePort) servicePort).deleteObject(repositoryId, helper.getCompanyHomeId(repositoryId));
((ObjectServicePort) servicePort).deleteObject(repositoryId, helper.getCompanyHomeId(repositoryId), Boolean.TRUE);
fail("Try to delere root folder");
}
catch (CmisException e)
@@ -406,7 +415,7 @@ public class DMObjectServiceTest extends AbstractServiceTest
documentId2 = helper.createDocument(documentName, folderId2);
// public FailedToDelete deleteTree(String repositoryId, String folderId, EnumUnfileNonfolderObjects unfileNonfolderObjects, Boolean continueOnFailure)
DeleteTreeResponse.FailedToDelete response = ((ObjectServicePort) servicePort).deleteTree(repositoryId, folderId1, EnumUnfileNonfolderObjects.DELETE, true);
DeleteTreeResponse.FailedToDelete response = ((ObjectServicePort) servicePort).deleteTree(repositoryId, folderId1, EnumUnfileObject.DELETE, true);
assertTrue("All objects should be deleted", response.getObjectId().size() == 0);
assertNull("DELETE", helper.getObjectProperties(folderId1));
@@ -423,7 +432,7 @@ public class DMObjectServiceTest extends AbstractServiceTest
documentName = "Test cmis document (" + System.currentTimeMillis() + ")";
documentId2 = helper.createDocument(documentName, folderId2);
response = ((ObjectServicePort) servicePort).deleteTree(repositoryId, folderId1, EnumUnfileNonfolderObjects.DELETESINGLEFILED, true);
response = ((ObjectServicePort) servicePort).deleteTree(repositoryId, folderId1, EnumUnfileObject.DELETESINGLEFILED, true);
// assertNotNull("DELETESINGLEFILED", response);
assertTrue("All objects should not be deleted", response.getObjectId().size() != 0);
assertNotNull("DELETESINGLEFILED", helper.getObjectProperties(folderId1));
@@ -451,8 +460,8 @@ public class DMObjectServiceTest extends AbstractServiceTest
try
{
@SuppressWarnings("unused")
DeleteTreeResponse.FailedToDelete response = ((ObjectServicePort) servicePort).deleteTree(repositoryId, helper.getCompanyHomeId(repositoryId),
EnumUnfileNonfolderObjects.DELETE, true);
DeleteTreeResponse.FailedToDelete response = ((ObjectServicePort) servicePort).deleteTree(repositoryId, helper.getCompanyHomeId(repositoryId), EnumUnfileObject.DELETE,
true);
fail("Try to delere root folder");
}
catch (CmisException e)
@@ -469,29 +478,29 @@ public class DMObjectServiceTest extends AbstractServiceTest
response = ((ObjectServicePort) servicePort).getAllowableActions(repositoryId, documentId);
assertNotNull(response);
assertTrue(response.canGetProperties);
assertTrue(response.canCheckout);
assertTrue(response.canCheckOut);
response = ((ObjectServicePort) servicePort).getAllowableActions(repositoryId, folderId);
assertNotNull(response);
assertTrue(response.canGetProperties);
assertNull(response.canCheckout);
assertNull(response.canCheckOut);
}
public void testMoveObject() throws Exception
{
// public void moveObject(String repositoryId, String objectId, String targetFolderId, String sourceFolderId)
((ObjectServicePort) servicePort).moveObject(repositoryId, documentId, folderId, companyHomeId);
((ObjectServicePort) servicePort).moveObject(repositoryId, new Holder<String>(documentId), folderId, companyHomeId);
GetPropertiesResponse response = helper.getObjectProperties(documentId);
CmisObjectType response = helper.getObjectProperties(documentId);
assertObjectPropertiesNotNull(response);
CmisObjectType objectType = response.getObject();
assertNotNull(response);
assertNotNull(getStringProperty(response.getProperties(), CMISDictionaryModel.PROP_NAME));
assertNotNull(objectType);
assertNotNull(getPropertyValue(response, CMISDictionaryModel.PROP_NAME));
GetObjectParentsResponse parentsResponse = helper.getObjectParents(documentId, "*");
assertTrue(parentsResponse.getObject().size() == 1);
assertTrue(propertiesUtil.getCmisPropertyValue(parentsResponse.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_NAME, null).equals(folderName));
List<CmisObjectType> parentsResponse = helper.getObjectParents(documentId, "*");
assertNotNull(parentsResponse);
assertTrue(parentsResponse.size() == 1);
assertTrue(getStringProperty(parentsResponse.get(0).getProperties(), CMISDictionaryModel.PROP_NAME).equals(folderName));
}
@@ -506,7 +515,7 @@ public class DMObjectServiceTest extends AbstractServiceTest
try
{
((ObjectServicePort) servicePort).moveObject(repositoryId, documentId, folderId, null);
((ObjectServicePort) servicePort).moveObject(repositoryId, new Holder<String>(documentId), folderId, null);
fail("sourceFolderId is not specified - should throw InvalidArgumentException");
}
catch (CmisException e)
@@ -532,20 +541,23 @@ public class DMObjectServiceTest extends AbstractServiceTest
Holder<String> documentIdHolder = new Holder<String>(documentId);
// public void setContentStream(String repositoryId, Holder<String> documentId, Boolean overwriteFlag, CmisContentStreamType contentStream)
((ObjectServicePort) servicePort).setContentStream(repositoryId, documentIdHolder, true, contentStream);
((ObjectServicePort) servicePort).setContentStream(repositoryId, documentIdHolder, true, null, contentStream);
CmisContentStreamType result = ((ObjectServicePort) servicePort).getContentStream(repositoryId, documentIdHolder.value);
CmisContentStreamType result = ((ObjectServicePort) servicePort).getContentStream(repositoryId, documentIdHolder.value, null);
if (result.getLength().intValue() == 0)
{
fail("Content Stream is empty");
}
assertEquals(newContent, result.getStream().getContent());
// FIXME: uncomment when transaction problem will be fixed
// assertEquals(newContent, result.getStream().getContent());
// Alfresco create new version of document
propertiesResponse = helper.getObjectProperties(documentIdHolder.value);
assertFalse("new version of document should be created", getPropertyValue(propertiesResponse, CMISDictionaryModel.PROP_OBJECT_ID).equals(documentId));
GetAllVersionsResponse responseVersions = helper.getAllVersions(documentId);
assertTrue("new version of document should be created", responseVersions.getObject().size() > 1);
propertiesObject = helper.getObjectProperties(documentIdHolder.value);
assertObjectPropertiesNotNull(propertiesObject);
assertFalse("new version of document should be created", getIdProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_OBJECT_ID).equals(documentId));
List<CmisObjectType> responseVersions = helper.getAllVersions(documentId);
assertNotNull(responseVersions);
assertTrue("new version of document should be created", responseVersions.size() > 1);
// assertEquals(newFileName, result.getFilename());
@@ -568,7 +580,7 @@ public class DMObjectServiceTest extends AbstractServiceTest
try
{
// public void setContentStream(String repositoryId, Holder<String> documentId, Boolean overwriteFlag, CmisContentStreamType contentStream)
((ObjectServicePort) servicePort).setContentStream(repositoryId, holder, false, contentStream);
((ObjectServicePort) servicePort).setContentStream(repositoryId, holder, false, null, contentStream);
fail("ContentAlreadyExists should be thrown");
}
catch (CmisException e)
@@ -578,23 +590,38 @@ public class DMObjectServiceTest extends AbstractServiceTest
documentId = holder.value;
// now we can not set any property (beside name) when we create new document - so this case not working
propertiesResponse = helper.getObjectProperties(documentId);
// TODO: fix up
// String contentStreamAllowed = propertiesUtil.getCmisPropertyValue(propertiesResponse.getObject().getProperties(), CMISDictionaryModel.PROP_CONTENT_STREAM_ALLOWED, null);
// if (contentStreamAllowed != null && contentStreamAllowed.equals(EnumContentStreamAllowed.NOTALLOWED.value()))
// {
// try
// {
// // public void setContentStream(String repositoryId, Holder<String> documentId, Boolean overwriteFlag, CmisContentStreamType contentStream)
// ((ObjectServicePort) servicePort).setContentStream(repositoryId, holder, true, contentStream);
// fail("ConstraintViolationException should be thrown");
// }
// catch (CmisException e)
// {
// assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.CONSTRAINT));
// }
// }
propertiesObject = helper.getObjectProperties(documentId);
try
{
// public void setContentStream(String repositoryId, Holder<String> documentId, Boolean overwriteFlag, CmisContentStreamType contentStream)
((ObjectServicePort) servicePort).setContentStream(repositoryId, holder, true, null, null);
fail("'storage' Exception should be thrown");
}
catch (CmisException e)
{
assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.STORAGE));
}
}
public void testFolderByPathReceiving() throws Exception
{
CmisObjectType actualObject = ((ObjectServicePort) servicePort).getProperties(repositoryId, folderId, CMISDictionaryModel.PROP_NAME, false, EnumIncludeRelationships.NONE,
false);
assertPropertiesObject(actualObject);
String nameProperty = getStringProperty(actualObject.getProperties(), CMISDictionaryModel.PROP_NAME);
assertNotNull(nameProperty);
assertNotSame("", nameProperty);
CmisObjectType response = ((ObjectServicePort) servicePort).getFolderByPath(repositoryId, ("/" + nameProperty), "*", false, EnumIncludeRelationships.NONE, false);
assertPropertiesObject(response);
assertEquals(nameProperty, getStringProperty(response.getProperties(), CMISDictionaryModel.PROP_NAME));
}
private void assertPropertiesObject(CmisObjectType actualObject)
{
assertNotNull(actualObject);
assertNotNull(actualObject.getProperties());
assertNotNull(actualObject.getProperties().getProperty());
assertFalse(actualObject.getProperties().getProperty().isEmpty());
}
public void testUpdateProperties() throws Exception
@@ -606,15 +633,18 @@ public class DMObjectServiceTest extends AbstractServiceTest
CmisPropertiesType properties = new CmisPropertiesType();
List<CmisProperty> propertiesList = properties.getProperty();
CmisPropertyString cmisProperty = new CmisPropertyString();
cmisProperty.setName(CMISDictionaryModel.PROP_NAME);
cmisProperty.setLocalname(CMISDictionaryModel.PROP_NAME);
cmisProperty.getValue().add(newName);
propertiesList.add(cmisProperty);
// public void updateProperties(String repositoryId, Holder<String> objectId, String changeToken, CmisPropertiesType properties)
((ObjectServicePort) servicePort).updateProperties(repositoryId, new Holder<String>(documentId), new String(""), properties);
Holder<String> changeToken = new Holder<String>();
((ObjectServicePort) servicePort).updateProperties(repositoryId, new Holder<String>(documentId), changeToken, properties);
GetPropertiesResponse response = helper.getObjectProperties(documentId);
assertEquals(newName, getObjectName(response));
@SuppressWarnings("unused")
CmisObjectType response = helper.getObjectProperties(documentId);
// FIXME: uncomment this when transaction problem will be fixed
// assertEquals(newName, getObjectName(response));
}
public void testUpdateProperties_Exceptions() throws Exception
@@ -626,20 +656,21 @@ public class DMObjectServiceTest extends AbstractServiceTest
properties = new CmisPropertiesType();
List<CmisProperty> propertiesList = properties.getProperty();
CmisPropertyString cmisProperty = new CmisPropertyString();
cmisProperty.setName(CMISDictionaryModel.PROP_OBJECT_ID);
cmisProperty.setLocalname(CMISDictionaryModel.PROP_OBJECT_ID);
cmisProperty.getValue().add("new id value");
propertiesList.add(cmisProperty);
try
{
Holder<String> holder = new Holder<String>(documentId);
// public void updateProperties(String repositoryId, Holder<String> objectId, String changeToken, CmisPropertiesType properties)
((ObjectServicePort) servicePort).updateProperties(repositoryId, holder, new String(""), properties);
Holder<String> changeToken = new Holder<String>();
((ObjectServicePort) servicePort).updateProperties(repositoryId, holder, changeToken, properties);
documentId = holder.value;
GetProperties getProperties = new GetProperties();
getProperties.setRepositoryId(repositoryId);
getProperties.setObjectId(holder.value);
GetPropertiesResponse response = ((ObjectServicePort) servicePort).getProperties(getProperties);
String documentIdAfterUpdate = propertiesUtil.getCmisPropertyValue(response.getObject().getProperties(), CMISDictionaryModel.PROP_OBJECT_ID, null);
CmisObjectType object = ((ObjectServicePort) servicePort).getProperties(repositoryId, holder.value, null, null, null, null);
String documentIdAfterUpdate = getIdProperty(object.getProperties(), CMISDictionaryModel.PROP_OBJECT_ID);
assertTrue("should not update read only propery", !"new id value".equals(documentIdAfterUpdate) && documentId.equals(documentIdAfterUpdate));
}
catch (CmisException e)

View File

@@ -26,6 +26,7 @@ package org.alfresco.repo.cmis.ws;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
@@ -72,7 +73,7 @@ public class DMPolicyServiceTest extends AbstractServiceTest
}
catch (CmisException e)
{
assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.NOT_SUPPORTED));
assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.RUNTIME));
}
}
@@ -80,18 +81,12 @@ public class DMPolicyServiceTest extends AbstractServiceTest
{
try
{
GetAppliedPolicies request = new GetAppliedPolicies();
request.setRepositoryId(repositoryId);
request.setObjectId(documentId);
request.setFilter(cmisObjectFactory.createGetAppliedPoliciesFilter(""));
@SuppressWarnings("unused")
GetAppliedPoliciesResponse response = ((PolicyServicePort) servicePort).getAppliedPolicies(request);
List<CmisObjectType> response = ((PolicyServicePort) servicePort).getAppliedPolicies(repositoryId, documentId, "");
}
catch (CmisException e)
{
assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.NOT_SUPPORTED));
assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.RUNTIME));
}
}
@@ -103,7 +98,7 @@ public class DMPolicyServiceTest extends AbstractServiceTest
}
catch (CmisException e)
{
assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.NOT_SUPPORTED));
assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.RUNTIME));
}
}
}

View File

@@ -39,7 +39,7 @@ public class DMRelationshipServiceTest extends AbstractServiceTest
@SuppressWarnings("unused")
private String relationshipId;
private String document2Id;
public DMRelationshipServiceTest()
{
super();
@@ -102,20 +102,20 @@ public class DMRelationshipServiceTest extends AbstractServiceTest
public void testGetRelationships() throws Exception
{
// TODO: uncomment
// GetRelationships request = cmisObjectFactory.createGetRelationships();
// request.setRepositoryId(repositoryId);
// request.setObjectId(documentId);
// request.setFilter(cmisObjectFactory.createGetRelationshipsFilter("*"));
// request.setTypeId(cmisObjectFactory.createGetRelationshipsTypeId(CMISMapping.RELATIONSHIP_TYPE_ID.getTypeId()));
// request.setIncludeAllowableActions(cmisObjectFactory.createGetRelationshipsIncludeAllowableActions(true));
// request.setIncludeSubRelationshipTypes(cmisObjectFactory.createGetRelationshipsIncludeSubRelationshipTypes(true));
// request.setMaxItems(cmisObjectFactory.createGetRelationshipsMaxItems(BigInteger.valueOf(0)));
// request.setSkipCount(cmisObjectFactory.createGetRelationshipsSkipCount(BigInteger.valueOf(0)));
// request.setDirection(cmisObjectFactory.createGetRelationshipsDirection(EnumRelationshipDirection.SOURCE));
//
// // public GetRelationshipsResponse getRelationships(GetRelationships parameters)
// GetRelationshipsResponse responce = ((RelationshipServicePort) servicePort).getRelationships(request);
// assertNotNull(responce.getObject());
// GetRelationships request = cmisObjectFactory.createGetRelationships();
// request.setRepositoryId(repositoryId);
// request.setObjectId(documentId);
// request.setFilter(cmisObjectFactory.createGetRelationshipsFilter("*"));
// request.setTypeId(cmisObjectFactory.createGetRelationshipsTypeId(CMISMapping.RELATIONSHIP_TYPE_ID.getTypeId()));
// request.setIncludeAllowableActions(cmisObjectFactory.createGetRelationshipsIncludeAllowableActions(true));
// request.setIncludeSubRelationshipTypes(cmisObjectFactory.createGetRelationshipsIncludeSubRelationshipTypes(true));
// request.setMaxItems(cmisObjectFactory.createGetRelationshipsMaxItems(BigInteger.valueOf(0)));
// request.setSkipCount(cmisObjectFactory.createGetRelationshipsSkipCount(BigInteger.valueOf(0)));
// request.setDirection(cmisObjectFactory.createGetRelationshipsDirection(EnumRelationshipDirection.SOURCE));
//
// // public GetRelationshipsResponse getRelationships(GetRelationships parameters)
// GetRelationshipsResponse responce = ((RelationshipServicePort) servicePort).getRelationships(request);
// assertNotNull(responce.getObject());
}
public void testGetRelationshipObjectProperties() throws Exception
@@ -136,4 +136,3 @@ public class DMRelationshipServiceTest extends AbstractServiceTest
// CMISMapping.PROP_OBJECT_ID)));
}
}

View File

@@ -31,7 +31,7 @@ import javax.xml.ws.Holder;
public class DMRepositoryServiceTest extends AbstractServiceTest
{
public final static String TYPE_ID = "D/wcm_avmlayeredcontent";
public final static String TYPE_ID = "F/wca:webfolder";
public DMRepositoryServiceTest()
{
@@ -52,40 +52,54 @@ public class DMRepositoryServiceTest extends AbstractServiceTest
{
List<CmisRepositoryEntryType> repositories = ((RepositoryServicePort) servicePort).getRepositories();
assertTrue(repositories.size() == 1);
assertFalse(repositories.get(0).getRepositoryId() == null);
assertFalse(repositories.get(0).getRepositoryName() == null);
assertFalse(repositories.get(0).getId() == null);
assertFalse(repositories.get(0).getName() == null);
}
public void testGetRepositoryInfo() throws Exception
{
List<CmisRepositoryEntryType> repositories = ((RepositoryServicePort) servicePort).getRepositories();
GetRepositoryInfo parameters = new GetRepositoryInfo();
parameters.setRepositoryId(repositories.get(0).getRepositoryId());
parameters.setRepositoryId(repositories.get(0).getId());
CmisRepositoryInfoType cmisRepositoryInfoType = ((RepositoryServicePort) servicePort).getRepositoryInfo(repositoryId);
assertTrue(cmisRepositoryInfoType.getRepositoryId().equals(repositories.get(0).getRepositoryId()));
assertTrue(cmisRepositoryInfoType.getRepositoryName().equals(repositories.get(0).getRepositoryName()));
assertTrue(cmisRepositoryInfoType.getRepositoryId().equals(repositories.get(0).getId()));
assertTrue(cmisRepositoryInfoType.getRepositoryName().equals(repositories.get(0).getName()));
CmisRepositoryCapabilitiesType capabilities = cmisRepositoryInfoType.getCapabilities();
assertTrue(capabilities.isCapabilityMultifiling() && capabilities.isCapabilityPWCUpdateable());
assertFalse(capabilities.isCapabilityUnfiling() && capabilities.isCapabilityVersionSpecificFiling());
}
public void testGetTypes() throws Exception
public void testGetTypeChildren() throws Exception
{
GetTypes request = new GetTypes();
BigInteger maxItems = BigInteger.valueOf(0);
BigInteger skipItems = BigInteger.valueOf(0);
request.setRepositoryId(repositoryId);
request.setIncludePropertyDefinitions(cmisObjectFactory.createGetTypesIncludePropertyDefinitions(Boolean.FALSE));
Holder<List<CmisTypeDefinitionType>> typeHolder = new Holder<List<CmisTypeDefinitionType>>();
Holder<Boolean> hasMoreElementsHolder = new Holder<Boolean>();
((RepositoryServicePort) servicePort).getTypes(repositoryId, "", Boolean.FALSE, maxItems, skipItems, typeHolder, hasMoreElementsHolder);
((RepositoryServicePort) servicePort).getTypeChildren(repositoryId, "", Boolean.FALSE, maxItems, skipItems, typeHolder, hasMoreElementsHolder);
assertNotNull(typeHolder.value);
assertFalse(typeHolder.value.isEmpty());
CmisTypeDefinitionType element = typeHolder.value.get(0);
assertNotNull(element);
}
public void testGetTypeDescedants() throws Exception
{
List<CmisTypeContainer> result = ((RepositoryServicePort) servicePort).getTypeDescendants(repositoryId, "", null, true);
assertNotNull(result);
assertFalse(result.isEmpty());
CmisTypeContainer element = result.get(0);
assertNotNull(element);
result = ((RepositoryServicePort) servicePort).getTypeDescendants(repositoryId, "", BigInteger.valueOf(1), true);
assertNotNull(result);
assertFalse(result.isEmpty());
assertNotNull(result.get(0));
result = ((RepositoryServicePort) servicePort).getTypeDescendants(repositoryId, TYPE_ID, null, false);
assertNotNull(result);
assertTrue(result.size() == 1);
assertNotNull(result.get(0));
}
public void testGetTypeDefinition() throws Exception
{
CmisTypeDefinitionType type = ((RepositoryServicePort) servicePort).getTypeDefinition(repositoryId, TYPE_ID);

View File

@@ -24,6 +24,8 @@
*/
package org.alfresco.repo.cmis.ws;
import java.util.List;
import javax.activation.DataHandler;
import javax.xml.ws.Holder;
@@ -79,9 +81,9 @@ public class DMVersioningServiceTest extends AbstractServiceTest
DataHandler dataHandler = new DataHandler("Test content string: " + System.currentTimeMillis(), MimetypeMap.MIMETYPE_TEXT_PLAIN);
contentStream.setStream(dataHandler);
String checkinComment = "Test checkin" + System.currentTimeMillis();
((VersioningServicePort) servicePort).checkIn(repositoryId, documentIdHolder, Boolean.TRUE, properties, contentStream, checkinComment);
((VersioningServicePort) servicePort).checkIn(repositoryId, documentIdHolder, Boolean.TRUE, properties, contentStream, checkinComment, null, null, null);
assertEquals(checkinComment, propertiesUtil.getCmisPropertyValue(helper.getObjectProperties(documentId).getObject().getProperties(), CMISDictionaryModel.PROP_CHECKIN_COMMENT, null));
assertEquals(checkinComment, getStringProperty(helper.getObjectProperties(documentIdHolder.value).getProperties(), CMISDictionaryModel.PROP_CHECKIN_COMMENT));
}
public void testCheckOutCheckInDefault() throws Exception
@@ -94,7 +96,7 @@ public class DMVersioningServiceTest extends AbstractServiceTest
assertFalse(documentId.equals(documentIdHolder.value));
// check in
((VersioningServicePort) servicePort).checkIn(repositoryId, documentIdHolder, null, null, null, null);
((VersioningServicePort) servicePort).checkIn(repositoryId, documentIdHolder, null, null, null, null, null, null, null);
}
public void testCheckOutCancelCheckOut() throws Exception
@@ -108,7 +110,7 @@ public class DMVersioningServiceTest extends AbstractServiceTest
// Cancel check out
((VersioningServicePort) servicePort).cancelCheckOut(repositoryId, documentIdHolder.value);
assertFalse((Boolean) propertiesUtil.getCmisPropertyValue(helper.getObjectProperties(documentId).getObject().getProperties(), CMISDictionaryModel.PROP_IS_VERSION_SERIES_CHECKED_OUT, null));
assertFalse(getBooleanProperty(helper.getObjectProperties(documentId).getProperties(), CMISDictionaryModel.PROP_IS_VERSION_SERIES_CHECKED_OUT));
}
public void testCheckinNoExistsCheckOut() throws Exception
@@ -122,13 +124,13 @@ public class DMVersioningServiceTest extends AbstractServiceTest
DataHandler dataHandler = new DataHandler("Test content string: " + System.currentTimeMillis(), MimetypeMap.MIMETYPE_TEXT_PLAIN);
contentStream.setStream(dataHandler);
String checkinComment = "Test checkin";
((VersioningServicePort) servicePort).checkIn(repositoryId, documentIdHolder, Boolean.TRUE, properties, contentStream, checkinComment);
((VersioningServicePort) servicePort).checkIn(repositoryId, documentIdHolder, Boolean.TRUE, properties, contentStream, checkinComment, null, null, null);
fail("Expects exception");
}
catch (CmisException e)
{
assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.NOT_SUPPORTED));
assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.UPDATE_CONFLICT));
}
}
@@ -143,42 +145,28 @@ public class DMVersioningServiceTest extends AbstractServiceTest
}
catch (CmisException e)
{
assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.NOT_SUPPORTED));
assertTrue(e.getFaultInfo().getType().equals(EnumServiceException.UPDATE_CONFLICT));
}
}
public void testGetPropertiesOfLatestVersion() throws Exception
{
GetPropertiesOfLatestVersion request = new GetPropertiesOfLatestVersion();
request.setRepositoryId(repositoryId);
request.setFilter(cmisObjectFactory.createGetPropertiesOfLatestVersionFilter("*"));
request.setMajorVersion(Boolean.TRUE);
request.setVersionSeriesId(documentId);
GetPropertiesOfLatestVersionResponse response = ((VersioningServicePort) servicePort).getPropertiesOfLatestVersion(request);
assertNotNull(response);
assertNotNull(response.getObject());
CmisObjectType objectType = response.getObject();
CmisObjectType objectType = ((VersioningServicePort) servicePort).getPropertiesOfLatestVersion(repositoryId, documentId, true, "*", false);
assertNotNull(objectType);
assertNotNull(objectType.getProperties());
assertTrue((Boolean) propertiesUtil.getCmisPropertyValue(objectType.getProperties(), CMISDictionaryModel.PROP_IS_LATEST_VERSION, null));
assertTrue(getBooleanProperty(objectType.getProperties(), CMISDictionaryModel.PROP_IS_LATEST_VERSION));
}
public void testGetPropertiesOfLatestVersionDefault() throws Exception
{
GetPropertiesOfLatestVersion request = new GetPropertiesOfLatestVersion();
request.setRepositoryId(repositoryId);
request.setVersionSeriesId(documentId);
GetPropertiesOfLatestVersionResponse response = ((VersioningServicePort) servicePort).getPropertiesOfLatestVersion(request);
assertNotNull(response);
assertNotNull(response.getObject());
CmisObjectType objectType = response.getObject();
assertNotNull(objectType.getProperties());
assertTrue((Boolean) propertiesUtil.getCmisPropertyValue(objectType.getProperties(), CMISDictionaryModel.PROP_IS_LATEST_VERSION, null));
CmisObjectType cmisObjectType = ((VersioningServicePort) servicePort).getPropertiesOfLatestVersion(repositoryId, documentId, true, "", null);
assertNotNull(cmisObjectType);
assertNotNull(cmisObjectType.getProperties());
assertTrue(getBooleanProperty(cmisObjectType.getProperties(), CMISDictionaryModel.PROP_IS_LATEST_VERSION));
}
public void testGetAllVersionsDefault() throws Exception
{
GetAllVersions request = new GetAllVersions();
Holder<String> documentIdHolder = new Holder<String>(documentId);
Holder<Boolean> contentCopied = new Holder<Boolean>();
String checkinComment = "Test checkin" + System.currentTimeMillis();
@@ -186,19 +174,16 @@ public class DMVersioningServiceTest extends AbstractServiceTest
helper.checkOut(documentIdHolder, contentCopied);
helper.checkIn(documentIdHolder, checkinComment, true);
request.setRepositoryId(repositoryId);
request.setVersionSeriesId(documentId);
GetAllVersionsResponse response = ((VersioningServicePort) servicePort).getAllVersions(request);
List<CmisObjectType> response = ((VersioningServicePort) servicePort).getAllVersions(repositoryId, documentId, "", null, null);
assertNotNull(response);
assertNotNull(response.getObject());
assertEquals(checkinComment, propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_CHECKIN_COMMENT, null));
assertFalse(response.isEmpty());
CmisObjectType firstElement = response.iterator().next();
assertNotNull(firstElement);
assertEquals(checkinComment, getStringProperty(firstElement.getProperties(), CMISDictionaryModel.PROP_CHECKIN_COMMENT));
}
public void testGetAllVersions() throws Exception
{
GetAllVersions request = new GetAllVersions();
Holder<String> documentIdHolder = new Holder<String>(documentId);
Holder<Boolean> contentCopied = new Holder<Boolean>();
String checkinComment = "Test checkin" + System.currentTimeMillis();
@@ -206,36 +191,22 @@ public class DMVersioningServiceTest extends AbstractServiceTest
helper.checkOut(documentIdHolder, contentCopied);
helper.checkIn(documentIdHolder, checkinComment, true);
request.setRepositoryId(repositoryId);
request.setVersionSeriesId(documentId);
request.setFilter(cmisObjectFactory.createGetAllVersionsFilter("*"));
request.setIncludeAllowableActions(cmisObjectFactory.createGetAllVersionsIncludeAllowableActions(Boolean.FALSE));
request.setIncludeRelationships(cmisObjectFactory.createGetAllVersionsIncludeRelationships(EnumIncludeRelationships.NONE));
GetAllVersionsResponse response = ((VersioningServicePort) servicePort).getAllVersions(request);
List<CmisObjectType> response = ((VersioningServicePort) servicePort).getAllVersions(repositoryId, documentId, "*", false, EnumIncludeRelationships.NONE);
assertNotNull(response);
assertNotNull(response.getObject());
assertEquals(checkinComment, propertiesUtil.getCmisPropertyValue(response.getObject().get(0).getProperties(), CMISDictionaryModel.PROP_CHECKIN_COMMENT, null));
assertFalse(response.isEmpty());
CmisObjectType firstElement = response.iterator().next();
assertNotNull(firstElement);
assertEquals(checkinComment, getStringProperty(firstElement.getProperties(), CMISDictionaryModel.PROP_CHECKIN_COMMENT));
}
public void testGetAllVersionsForNoVersionHistory() throws Exception
{
GetAllVersions request = new GetAllVersions();
request.setRepositoryId(repositoryId);
request.setVersionSeriesId(documentId);
request.setFilter(cmisObjectFactory.createGetAllVersionsFilter("*"));
request.setIncludeAllowableActions(cmisObjectFactory.createGetAllVersionsIncludeAllowableActions(Boolean.FALSE));
request.setIncludeRelationships(cmisObjectFactory.createGetAllVersionsIncludeRelationships(EnumIncludeRelationships.NONE));
GetAllVersionsResponse response = ((VersioningServicePort) servicePort).getAllVersions(request);
List<CmisObjectType> response = ((VersioningServicePort) servicePort).getAllVersions(repositoryId, documentId, "*", false, EnumIncludeRelationships.NONE);
assertNotNull(response);
assertNotNull(response.getObject());
}
public void testGetAllVersionsCheckedOutAndPWC() throws Exception
{
GetAllVersions request = new GetAllVersions();
Holder<String> documentIdHolder = new Holder<String>(documentId);
Holder<Boolean> contentCopied = new Holder<Boolean>();
boolean checkedOutfound = false;
@@ -243,24 +214,18 @@ public class DMVersioningServiceTest extends AbstractServiceTest
try
{
helper.checkOut(documentIdHolder, contentCopied);
request.setRepositoryId(repositoryId);
request.setVersionSeriesId(documentId);
request.setFilter(cmisObjectFactory.createGetAllVersionsFilter("*"));
request.setIncludeAllowableActions(cmisObjectFactory.createGetAllVersionsIncludeAllowableActions(Boolean.FALSE));
request.setIncludeRelationships(cmisObjectFactory.createGetAllVersionsIncludeRelationships(EnumIncludeRelationships.NONE));
GetAllVersionsResponse response = ((VersioningServicePort) servicePort).getAllVersions(request);
List<CmisObjectType> response = ((VersioningServicePort) servicePort).getAllVersions(repositoryId, documentId, "*", false, EnumIncludeRelationships.NONE);
assertNotNull(response);
assertNotNull(response.getObject());
for (CmisObjectType cmisObjectType : response.getObject())
for (CmisObjectType cmisObjectType : response)
{
if (!checkedOutfound)
{
checkedOutfound = (Boolean) propertiesUtil.getCmisPropertyValue(cmisObjectType.getProperties(), CMISDictionaryModel.PROP_IS_VERSION_SERIES_CHECKED_OUT, null);
checkedOutfound = getBooleanProperty(cmisObjectType.getProperties(), CMISDictionaryModel.PROP_IS_VERSION_SERIES_CHECKED_OUT);
}
if (!pwcFound)
{
pwcFound = ((String) propertiesUtil.getCmisPropertyValue(cmisObjectType.getProperties(), CMISDictionaryModel.PROP_OBJECT_ID, null)).startsWith(documentIdHolder.value);
pwcFound = (getIdProperty(cmisObjectType.getProperties(), CMISDictionaryModel.PROP_OBJECT_ID)).startsWith(documentIdHolder.value);
}
}
assertTrue("No checked out version found", checkedOutfound);
@@ -274,6 +239,7 @@ public class DMVersioningServiceTest extends AbstractServiceTest
public void testDeleteAllVersions() throws Exception
{
((VersioningServicePort) servicePort).deleteAllVersions(repositoryId, documentId);
// TODO: Schema bug. It possible should be returned
// ((VersioningServicePort) servicePort).deleteAllVersions(repositoryId, documentId);
}
}

View File

@@ -95,9 +95,9 @@ public class MultiThreadsServiceTest extends AbstractServiceTest
{
assertTrue("All threads done their work normally", anyFailed(threads));
GetPropertiesResponse propertiesResponse;
propertiesResponse = helper.getObjectProperties(documentId);
assertEquals(lastName, getPropertyValue(propertiesResponse, CMISDictionaryModel.PROP_NAME));
CmisObjectType propertiesObject = helper.getObjectProperties(documentId);
assertObjectPropertiesNotNull(propertiesObject);
assertEquals(lastName, getStringProperty(propertiesObject.getProperties(), CMISDictionaryModel.PROP_NAME));
}
}