Return-Path: Delivered-To: apmail-incubator-chemistry-commits-archive@minotaur.apache.org Received: (qmail 14748 invoked from network); 28 Oct 2010 16:32:12 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 28 Oct 2010 16:32:12 -0000 Received: (qmail 67791 invoked by uid 500); 28 Oct 2010 16:32:11 -0000 Delivered-To: apmail-incubator-chemistry-commits-archive@incubator.apache.org Received: (qmail 67466 invoked by uid 500); 28 Oct 2010 16:32:11 -0000 Mailing-List: contact chemistry-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: chemistry-dev@incubator.apache.org Delivered-To: mailing list chemistry-commits@incubator.apache.org Received: (qmail 67283 invoked by uid 99); 28 Oct 2010 16:32:10 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 Oct 2010 16:32:10 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 Oct 2010 16:32:08 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 5278923888EC; Thu, 28 Oct 2010 16:31:12 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1028380 - in /incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck: impl/AbstractSessionTest.java tests/basics/RootFolderTest.java tests/basics/TypesTest.java Date: Thu, 28 Oct 2010 16:31:12 -0000 To: chemistry-commits@incubator.apache.org From: fmui@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101028163112.5278923888EC@eris.apache.org> Author: fmui Date: Thu Oct 28 16:31:11 2010 New Revision: 1028380 URL: http://svn.apache.org/viewvc?rev=1028380&view=rev Log: - added more TCK type checks Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/TypesTest.java Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java?rev=1028380&r1=1028379&r2=1028380&view=diff ============================================================================== --- incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java (original) +++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java Thu Oct 28 16:31:11 2010 @@ -39,13 +39,17 @@ import org.apache.chemistry.opencmis.cli import org.apache.chemistry.opencmis.commons.PropertyIds; import org.apache.chemistry.opencmis.commons.SessionParameter; import org.apache.chemistry.opencmis.commons.data.RepositoryInfo; +import org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition; import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition; +import org.apache.chemistry.opencmis.commons.definitions.RelationshipTypeDefinition; import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition; import org.apache.chemistry.opencmis.commons.enums.Action; import org.apache.chemistry.opencmis.commons.enums.BaseTypeId; import org.apache.chemistry.opencmis.commons.enums.BindingType; import org.apache.chemistry.opencmis.commons.enums.Cardinality; import org.apache.chemistry.opencmis.commons.enums.PropertyType; +import org.apache.chemistry.opencmis.commons.enums.Updatability; +import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException; import org.apache.chemistry.opencmis.tck.CmisTestResult; import org.apache.chemistry.opencmis.tck.CmisTestResultStatus; @@ -129,13 +133,13 @@ public abstract class AbstractSessionTes if (PropertyIds.OBJECT_ID.equals(propId) || PropertyIds.BASE_TYPE_ID.equals(propId) || PropertyIds.OBJECT_TYPE_ID.equals(propId) || PropertyIds.CREATED_BY.equals(propId) || PropertyIds.LAST_MODIFIED_BY.equals(propId) || PropertyIds.CHANGE_TOKEN.equals(propId) - || PropertyIds.PATH.equals(propId)) { + || PropertyIds.PATH.equals(propId) || PropertyIds.SOURCE_ID.equals(propId) + || PropertyIds.TARGET_ID.equals(propId) || PropertyIds.POLICY_TEXT.equals(propId)) { propertyCheck = PropertyCheckEnum.STRING_MUST_NOT_BE_EMPTY; } // known properties that are strings and should be set - if (PropertyIds.NAME.equals(propId) || PropertyIds.SOURCE_ID.equals(propId) - || PropertyIds.TARGET_ID.equals(propId)) { + if (PropertyIds.NAME.equals(propId)) { propertyCheck = PropertyCheckEnum.STRING_SHOULD_NOT_BE_EMPTY; } @@ -339,7 +343,7 @@ public abstract class AbstractSessionTes return (result.getStatus().getLevel() <= OK.getLevel() ? null : result); } - protected CmisTestResult checkTypeDefinition(TypeDefinition type, String message) { + protected CmisTestResult checkTypeDefinition(Session session, TypeDefinition type, String message) { List results = new ArrayList(); CmisTestResult f; @@ -401,17 +405,54 @@ public abstract class AbstractSessionTes addResult(results, assertStringNotEmpty(type.getDescription(), null, f)); if (BaseTypeId.CMIS_DOCUMENT.equals(type.getBaseTypeId())) { - // TODO + DocumentTypeDefinition docType = (DocumentTypeDefinition) type; + + f = createResult(FAILURE, "Versionable flag is not set!"); + addResult(results, assertNotNull(docType.isVersionable(), null, f)); + + f = createResult(FAILURE, "Content stream allowed flag is not set!"); + addResult(results, assertNotNull(docType.getContentStreamAllowed(), null, f)); } else if (BaseTypeId.CMIS_FOLDER.equals(type.getBaseTypeId())) { - // TODO + // nothing to do } else if (BaseTypeId.CMIS_RELATIONSHIP.equals(type.getBaseTypeId())) { - // TODO + RelationshipTypeDefinition relType = (RelationshipTypeDefinition) type; + + f = createResult(FAILURE, "Allowed Source Type Ids are not set!"); + addResult(results, assertNotNull(relType.getAllowedSourceTypeIds(), null, f)); + + if (relType.getAllowedSourceTypeIds() != null) { + for (String typeId : relType.getAllowedSourceTypeIds()) { + try { + session.getTypeDefinition(typeId); + } catch (CmisObjectNotFoundException e) { + addResult( + results, + createResult(WARNING, + "Allowed Source Type Ids contain a type id that doesn't exist: " + typeId)); + } + } + } + + f = createResult(FAILURE, "Allowed Target Type Ids are not set!"); + addResult(results, assertNotNull(relType.getAllowedTargetTypeIds(), null, f)); + + if (relType.getAllowedTargetTypeIds() != null) { + for (String typeId : relType.getAllowedTargetTypeIds()) { + try { + session.getTypeDefinition(typeId); + } catch (CmisObjectNotFoundException e) { + addResult( + results, + createResult(WARNING, + "Allowed Target Type Ids contain a type id that doesn't exist: " + typeId)); + } + } + } } else if (BaseTypeId.CMIS_POLICY.equals(type.getBaseTypeId())) { - // TODO + // nothing to do } - // TODO check base property definitions - + // check properties f = createResult(FAILURE, "Type has no property definitions!"); addResult(results, assertNotNull(type.getPropertyDefinitions(), null, f)); @@ -426,6 +467,155 @@ public abstract class AbstractSessionTes } } } + + CmisPropertyDefintion cpd; + + // cmis:name + cpd = new CmisPropertyDefintion(PropertyIds.NAME, null, PropertyType.STRING, Cardinality.SINGLE, null, + null, null); + addResult(results, cpd.check(type)); + + // cmis:objectId + cpd = new CmisPropertyDefintion(PropertyIds.OBJECT_ID, false, PropertyType.ID, Cardinality.SINGLE, + Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:baseTypeId + cpd = new CmisPropertyDefintion(PropertyIds.BASE_TYPE_ID, false, PropertyType.ID, Cardinality.SINGLE, + Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:objectTypeId + cpd = new CmisPropertyDefintion(PropertyIds.OBJECT_TYPE_ID, true, PropertyType.ID, Cardinality.SINGLE, + Updatability.ONCREATE, null, null); + addResult(results, cpd.check(type)); + + // cmis:createdBy + cpd = new CmisPropertyDefintion(PropertyIds.CREATED_BY, false, PropertyType.STRING, Cardinality.SINGLE, + Updatability.READONLY, true, true); + addResult(results, cpd.check(type)); + + // cmis:creationDate + cpd = new CmisPropertyDefintion(PropertyIds.CREATION_DATE, false, PropertyType.DATETIME, + Cardinality.SINGLE, Updatability.READONLY, true, true); + addResult(results, cpd.check(type)); + + // cmis:lastModifiedBy + cpd = new CmisPropertyDefintion(PropertyIds.LAST_MODIFIED_BY, false, PropertyType.STRING, + Cardinality.SINGLE, Updatability.READONLY, true, true); + addResult(results, cpd.check(type)); + + // cmis:lastModificationDate + cpd = new CmisPropertyDefintion(PropertyIds.LAST_MODIFICATION_DATE, false, PropertyType.DATETIME, + Cardinality.SINGLE, Updatability.READONLY, true, true); + addResult(results, cpd.check(type)); + + // cmis:changeToken + cpd = new CmisPropertyDefintion(PropertyIds.CHANGE_TOKEN, false, PropertyType.STRING, Cardinality.SINGLE, + Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + if (BaseTypeId.CMIS_DOCUMENT.equals(type.getBaseTypeId())) { + // cmis:isImmutable + cpd = new CmisPropertyDefintion(PropertyIds.IS_IMMUTABLE, false, PropertyType.BOOLEAN, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:isLatestVersion + cpd = new CmisPropertyDefintion(PropertyIds.IS_LATEST_VERSION, false, PropertyType.BOOLEAN, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:isMajorVersion + cpd = new CmisPropertyDefintion(PropertyIds.IS_MAJOR_VERSION, false, PropertyType.BOOLEAN, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:isLatestMajorVersion + cpd = new CmisPropertyDefintion(PropertyIds.IS_LATEST_MAJOR_VERSION, false, PropertyType.BOOLEAN, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:versionLabel + cpd = new CmisPropertyDefintion(PropertyIds.VERSION_LABEL, false, PropertyType.STRING, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:versionSeriesId + cpd = new CmisPropertyDefintion(PropertyIds.VERSION_SERIES_ID, false, PropertyType.ID, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:isVersionSeriesCheckedOut + cpd = new CmisPropertyDefintion(PropertyIds.IS_VERSION_SERIES_CHECKED_OUT, false, PropertyType.BOOLEAN, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:versionSeriesCheckedOutBy + cpd = new CmisPropertyDefintion(PropertyIds.VERSION_SERIES_CHECKED_OUT_BY, false, PropertyType.STRING, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:versionSeriesCheckedOutId + cpd = new CmisPropertyDefintion(PropertyIds.VERSION_SERIES_CHECKED_OUT_ID, false, PropertyType.ID, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:checkinComment + cpd = new CmisPropertyDefintion(PropertyIds.CHECKIN_COMMENT, false, PropertyType.STRING, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:contentStreamLength + cpd = new CmisPropertyDefintion(PropertyIds.CONTENT_STREAM_LENGTH, false, PropertyType.INTEGER, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:contentStreamMimeType + cpd = new CmisPropertyDefintion(PropertyIds.CONTENT_STREAM_MIME_TYPE, false, PropertyType.STRING, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:contentStreamFileName + cpd = new CmisPropertyDefintion(PropertyIds.CONTENT_STREAM_FILE_NAME, false, PropertyType.STRING, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:contentStreamId + cpd = new CmisPropertyDefintion(PropertyIds.CONTENT_STREAM_ID, false, PropertyType.ID, + Cardinality.SINGLE, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + } else if (BaseTypeId.CMIS_FOLDER.equals(type.getBaseTypeId())) { + // cmis:parentId + cpd = new CmisPropertyDefintion(PropertyIds.PARENT_ID, false, PropertyType.ID, Cardinality.SINGLE, + Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:path + cpd = new CmisPropertyDefintion(PropertyIds.PATH, false, PropertyType.STRING, Cardinality.SINGLE, + Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + + // cmis:allowedChildObjectTypeIds + cpd = new CmisPropertyDefintion(PropertyIds.ALLOWED_CHILD_OBJECT_TYPE_IDS, false, PropertyType.ID, + Cardinality.MULTI, Updatability.READONLY, null, null); + addResult(results, cpd.check(type)); + } else if (BaseTypeId.CMIS_RELATIONSHIP.equals(type.getBaseTypeId())) { + // cmis:sourceId + cpd = new CmisPropertyDefintion(PropertyIds.SOURCE_ID, true, PropertyType.ID, Cardinality.SINGLE, null, + null, null); + addResult(results, cpd.check(type)); + + // cmis:targetId + cpd = new CmisPropertyDefintion(PropertyIds.TARGET_ID, true, PropertyType.ID, Cardinality.SINGLE, null, + null, null); + addResult(results, cpd.check(type)); + } else if (BaseTypeId.CMIS_POLICY.equals(type.getBaseTypeId())) { + // cmis:policyText + cpd = new CmisPropertyDefintion(PropertyIds.POLICY_TEXT, true, PropertyType.STRING, Cardinality.SINGLE, + null, null, null); + addResult(results, cpd.check(type)); + } } CmisTestResultImpl result = createResult(getWorst(results), message); @@ -443,7 +633,44 @@ public abstract class AbstractSessionTes addResult(results, assertNotNull(propDef, null, f)); if (propDef != null) { - // TODO + f = createResult(FAILURE, "Property id is not set!"); + addResult(results, assertStringNotEmpty(propDef.getId(), null, f)); + + f = createResult(WARNING, "Local name is not set!"); + addResult(results, assertStringNotEmpty(propDef.getLocalName(), null, f)); + + f = createResult(WARNING, "Local namespace is not set!"); + addResult(results, assertStringNotEmpty(propDef.getLocalNamespace(), null, f)); + + f = createResult(FAILURE, "Query name is not set!"); + addResult(results, assertStringNotEmpty(propDef.getQueryName(), null, f)); + + f = createResult(WARNING, "Display name is not set!"); + addResult(results, assertStringNotEmpty(propDef.getDisplayName(), null, f)); + + f = createResult(WARNING, "Description is not set!"); + addResult(results, assertStringNotEmpty(propDef.getDescription(), null, f)); + + f = createResult(FAILURE, "Property type is not set!"); + addResult(results, assertNotNull(propDef.getPropertyType(), null, f)); + + f = createResult(FAILURE, "Cardinality is not set!"); + addResult(results, assertNotNull(propDef.getCardinality(), null, f)); + + f = createResult(FAILURE, "Updatability is not set!"); + addResult(results, assertNotNull(propDef.getUpdatability(), null, f)); + + f = createResult(FAILURE, "Inherited flag is not set!"); + addResult(results, assertNotNull(propDef.isInherited(), null, f)); + + f = createResult(FAILURE, "Required flag is not set!"); + addResult(results, assertNotNull(propDef.isRequired(), null, f)); + + f = createResult(FAILURE, "Queryable flag is not set!"); + addResult(results, assertNotNull(propDef.isQueryable(), null, f)); + + f = createResult(FAILURE, "Orderable flag is not set!"); + addResult(results, assertNotNull(propDef.isOrderable(), null, f)); } CmisTestResultImpl result = createResult(getWorst(results), message); @@ -452,7 +679,7 @@ public abstract class AbstractSessionTes return (result.getStatus().getLevel() <= OK.getLevel() ? null : result); } - private void addResult(List results, CmisTestResult result) { + protected void addResult(List results, CmisTestResult result) { if (result != null) { if (result instanceof CmisTestResultImpl) { ((CmisTestResultImpl) result).setStackTrace(getStackTrace()); @@ -465,7 +692,7 @@ public abstract class AbstractSessionTes } } - private CmisTestResultStatus getWorst(List results) { + protected CmisTestResultStatus getWorst(List results) { if ((results == null) || (results.isEmpty())) { return CmisTestResultStatus.OK; } @@ -480,4 +707,94 @@ public abstract class AbstractSessionTes return CmisTestResultStatus.fromLevel(max); } + + // --- helper classes --- + + public class CmisPropertyDefintion { + private String id; + private Boolean required; + private PropertyType propertyType; + private Cardinality cardinality; + private Updatability updatability; + private Boolean queryable; + private Boolean orderable; + + public CmisPropertyDefintion(String id, Boolean required, PropertyType propertyType, Cardinality cardinality, + Updatability updatability, Boolean queryable, Boolean orderable) { + this.id = id; + this.required = required; + this.propertyType = propertyType; + this.cardinality = cardinality; + this.updatability = updatability; + this.queryable = queryable; + this.orderable = orderable; + } + + public CmisTestResult check(TypeDefinition type) { + List results = new ArrayList(); + + CmisTestResult f; + + Map> propDefs = type.getPropertyDefinitions(); + if (propDefs == null) { + addResult(results, createResult(FAILURE, "Property definitions are missing!")); + } else { + PropertyDefinition propDef = propDefs.get(id); + if (propDef == null) { + addResult(results, createResult(FAILURE, "Property definition is missing!")); + } else { + if ((required != null) && !required.equals(propDef.isRequired())) { + f = createResult(FAILURE, + "Required flag: expected: " + required + " / actual: " + propDef.isRequired()); + addResult(results, f); + } + + if (!propertyType.equals(propDef.getPropertyType())) { + f = createResult(FAILURE, + "Property type: expected: " + propertyType + " / actual: " + propDef.getPropertyType()); + addResult(results, f); + } + + if (!cardinality.equals(propDef.getCardinality())) { + f = createResult(FAILURE, + "Cardinality: expected: " + cardinality + " / actual: " + propDef.getCardinality()); + addResult(results, f); + } + + if ((updatability != null) && !updatability.equals(propDef.getUpdatability())) { + f = createResult(FAILURE, + "Updatability: expected: " + updatability + " / actual: " + propDef.getUpdatability()); + addResult(results, f); + } + + if ((queryable != null) && !queryable.equals(propDef.isQueryable())) { + f = createResult(FAILURE, + "Queryable: expected: " + queryable + " / actual: " + propDef.isQueryable()); + addResult(results, f); + } + + if ((orderable != null) && !orderable.equals(propDef.isOrderable())) { + f = createResult(FAILURE, + "Orderable: expected: " + orderable + " / actual: " + propDef.isQueryable()); + addResult(results, f); + } + + if (type.getBaseTypeId() != null) { + Boolean inherited = !type.getBaseTypeId().value().equals(type.getId()); + if (!inherited.equals(propDef.isInherited())) { + f = createResult(FAILURE, + "Inhertited: expected: " + orderable + " / actual: " + propDef.isQueryable()); + addResult(results, f); + } + } + } + } + + CmisTestResultImpl result = createResult(getWorst(results), "Property definition: " + id); + result.getChildren().addAll(results); + + return (result.getStatus().getLevel() <= OK.getLevel() ? null : result); + } + } + } Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java?rev=1028380&r1=1028379&r2=1028380&view=diff ============================================================================== --- incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java (original) +++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/RootFolderTest.java Thu Oct 28 16:31:11 2010 @@ -26,7 +26,6 @@ import java.util.Map; import org.apache.chemistry.opencmis.client.api.Folder; import org.apache.chemistry.opencmis.client.api.Session; -import org.apache.chemistry.opencmis.commons.PropertyIds; import org.apache.chemistry.opencmis.commons.data.RepositoryInfo; import org.apache.chemistry.opencmis.commons.enums.Action; import org.apache.chemistry.opencmis.commons.enums.BaseTypeId; @@ -58,16 +57,20 @@ public class RootFolderTest extends Abst // get the root folder Folder rootFolder = session.getRootFolder(); - String[] propertiesToCheck = new String[] { PropertyIds.OBJECT_ID, PropertyIds.OBJECT_TYPE_ID, - PropertyIds.BASE_TYPE_ID, PropertyIds.NAME, PropertyIds.CREATED_BY, PropertyIds.CREATION_DATE, - PropertyIds.LAST_MODIFIED_BY, PropertyIds.LAST_MODIFICATION_DATE }; - - addResult(checkObject(rootFolder, propertiesToCheck, "Root folder object spec compliance")); - if (rootFolder == null) { + addResult(createResult(FAILURE, "Root folder is not available!")); return; } + String[] propertiesToCheck = new String[rootFolder.getType().getPropertyDefinitions().size()]; + + int i = 0; + for (String propId : rootFolder.getType().getPropertyDefinitions().keySet()) { + propertiesToCheck[i++] = propId; + } + + addResult(checkObject(rootFolder, propertiesToCheck, "Root folder object spec compliance")); + // folder and path failure = createResult(FAILURE, "Root folder id in the repository info doesn't match the root folder object id!"); Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/TypesTest.java URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/TypesTest.java?rev=1028380&r1=1028379&r2=1028380&view=diff ============================================================================== --- incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/TypesTest.java (original) +++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/basics/TypesTest.java Thu Oct 28 16:31:11 2010 @@ -50,7 +50,7 @@ public class TypesTest extends AbstractS // document try { TypeDefinition documentType = session.getTypeDefinition(BaseTypeId.CMIS_DOCUMENT.value()); - addResult(checkTypeDefinition(documentType, "Document type spec compliance.")); + addResult(checkTypeDefinition(session, documentType, "Document type spec compliance.")); failure = createResult(FAILURE, "Document type has the wrong base type: " + documentType.getBaseTypeId()); addResult(assertEquals(BaseTypeId.CMIS_DOCUMENT, documentType.getBaseTypeId(), null, failure)); @@ -62,7 +62,7 @@ public class TypesTest extends AbstractS try { TypeDefinition folderType = session.getTypeDefinition(BaseTypeId.CMIS_FOLDER.value()); - addResult(checkTypeDefinition(folderType, "Folder type spec compliance.")); + addResult(checkTypeDefinition(session, folderType, "Folder type spec compliance.")); failure = createResult(FAILURE, "Folder type has the wrong base type: " + folderType.getBaseTypeId()); addResult(assertEquals(BaseTypeId.CMIS_FOLDER, folderType.getBaseTypeId(), null, failure)); @@ -73,7 +73,7 @@ public class TypesTest extends AbstractS // relationship try { TypeDefinition relationshipType = session.getTypeDefinition(BaseTypeId.CMIS_RELATIONSHIP.value()); - addResult(checkTypeDefinition(relationshipType, "Relationship type spec compliance.")); + addResult(checkTypeDefinition(session, relationshipType, "Relationship type spec compliance.")); failure = createResult(FAILURE, "Relationship type has the wrong base type: " + relationshipType.getBaseTypeId()); @@ -85,7 +85,7 @@ public class TypesTest extends AbstractS // policy try { TypeDefinition policyType = session.getTypeDefinition(BaseTypeId.CMIS_POLICY.value()); - addResult(checkTypeDefinition(policyType, "Policy type spec compliance.")); + addResult(checkTypeDefinition(session, policyType, "Policy type spec compliance.")); failure = createResult(FAILURE, "Policy type has the wrong base type: " + policyType.getBaseTypeId()); addResult(assertEquals(BaseTypeId.CMIS_POLICY, policyType.getBaseTypeId(), null, failure)); @@ -93,10 +93,10 @@ public class TypesTest extends AbstractS addResult(createResult(WARNING, "Policy type not available!", e, false)); } - runTypeChecks(session.getTypeDescendants(null, -1, true)); + runTypeChecks(session, session.getTypeDescendants(null, -1, true)); } - private void runTypeChecks(List> types) { + private void runTypeChecks(Session session, List> types) { if (types == null) { return; } @@ -108,10 +108,10 @@ public class TypesTest extends AbstractS addResult(assertNotNull(tree, null, failure)); if (tree != null) { - addResult(checkTypeDefinition(tree.getItem(), "Type spec compliance: " + tree.getItem().getId())); - runTypeChecks(tree.getChildren()); + addResult(checkTypeDefinition(session, tree.getItem(), "Type spec compliance: " + + tree.getItem().getId())); + runTypeChecks(session, tree.getChildren()); } } } - }