You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2012/08/12 13:57:27 UTC

svn commit: r1372076 - in /chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests: crud/CreateAndDeleteDocumentTest.java versioning/VersioningSmokeTest.java

Author: fmui
Date: Sun Aug 12 11:57:26 2012
New Revision: 1372076

URL: http://svn.apache.org/viewvc?rev=1372076&view=rev
Log:
TCK improvements

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteDocumentTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningSmokeTest.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteDocumentTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteDocumentTest.java?rev=1372076&r1=1372075&r2=1372076&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteDocumentTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/CreateAndDeleteDocumentTest.java Sun Aug 12 11:57:26 2012
@@ -116,10 +116,10 @@ public class CreateAndDeleteDocumentTest
                 addResult(assertEquals((long) numOfDocuments, page1.getTotalNumItems(), null, f));
             }
 
-            f = createResult(FAILURE, "hasMoreItems of the first test page must be 'true'!");
+            f = createResult(FAILURE, "hasMoreItems of the first test page must be TRUE!");
             addResult(assertEquals(true, page1.getHasMoreItems(), null, f));
 
-            // check escond page
+            // check second page
             count = 0;
             ItemIterable<CmisObject> page2 = testFolder.getChildren(SELECT_ALL_NO_CACHE_OC_ORDER_BY_NAME)
                     .skipTo(pageSize - 1).getPage(pageSize);
@@ -143,31 +143,54 @@ public class CreateAndDeleteDocumentTest
                 addResult(assertEquals((long) numOfDocuments, page2.getTotalNumItems(), null, f));
             }
 
-            f = createResult(FAILURE, "hasMoreItems of the second test page must be 'true'!");
+            f = createResult(FAILURE, "hasMoreItems of the second test page must be TRUE!");
             addResult(assertEquals(true, page2.getHasMoreItems(), null, f));
 
-            // check non-existing page
+            // check third page
             count = 0;
             ItemIterable<CmisObject> page3 = testFolder.getChildren(SELECT_ALL_NO_CACHE_OC_ORDER_BY_NAME)
-                    .skipTo(100000).getPage(pageSize);
+                    .skipTo(numOfDocuments - 5).getPage(10);
             for (@SuppressWarnings("unused")
             CmisObject child : page3) {
                 count++;
             }
 
-            f = createResult(FAILURE, "The page size of a non-existing page must be 0!");
-            addResult(assertEquals(0, count, null, f));
+            f = createResult(FAILURE,
+                    "Returned number of children should be 5 because page startetd at (numOfDocuments - 5).");
+            addResult(assertEquals(5, count, null, f));
 
             if (page3.getTotalNumItems() == -1) {
-                addResult(createResult(WARNING, "Repository did not return numItems for a non-existing page."));
+                addResult(createResult(WARNING, "Repository did not return numItems for the third test page."));
             } else {
                 f = createResult(FAILURE, "Returned numItems doesn't match the number of documents!");
                 addResult(assertEquals((long) numOfDocuments, page3.getTotalNumItems(), null, f));
             }
 
-            f = createResult(FAILURE, "hasMoreItems of a non-existing page must be 'false'!");
+            f = createResult(FAILURE, "hasMoreItems of the third test page must be FALSE!");
             addResult(assertEquals(false, page3.getHasMoreItems(), null, f));
 
+            // check non-existing page
+            count = 0;
+            ItemIterable<CmisObject> pageNotExisting = testFolder.getChildren(SELECT_ALL_NO_CACHE_OC_ORDER_BY_NAME)
+                    .skipTo(100000).getPage(pageSize);
+            for (@SuppressWarnings("unused")
+            CmisObject child : pageNotExisting) {
+                count++;
+            }
+
+            f = createResult(FAILURE, "The page size of a non-existing page must be 0!");
+            addResult(assertEquals(0, count, null, f));
+
+            if (pageNotExisting.getTotalNumItems() == -1) {
+                addResult(createResult(WARNING, "Repository did not return numItems for a non-existing page."));
+            } else {
+                f = createResult(FAILURE, "Returned numItems doesn't match the number of documents!");
+                addResult(assertEquals((long) numOfDocuments, pageNotExisting.getTotalNumItems(), null, f));
+            }
+
+            f = createResult(FAILURE, "hasMoreItems of a non-existing page must be FALSE!");
+            addResult(assertEquals(false, pageNotExisting.getHasMoreItems(), null, f));
+
             // check content
             for (Document document : documents.values()) {
                 ContentStream contentStream = document.getContentStream();

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningSmokeTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningSmokeTest.java?rev=1372076&r1=1372075&r2=1372076&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningSmokeTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/versioning/VersioningSmokeTest.java Sun Aug 12 11:57:26 2012
@@ -19,9 +19,11 @@
 package org.apache.chemistry.opencmis.tck.tests.versioning;
 
 import static org.apache.chemistry.opencmis.tck.CmisTestResultStatus.FAILURE;
+import static org.apache.chemistry.opencmis.tck.CmisTestResultStatus.OK;
 import static org.apache.chemistry.opencmis.tck.CmisTestResultStatus.SKIPPED;
 import static org.apache.chemistry.opencmis.tck.CmisTestResultStatus.WARNING;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -32,6 +34,7 @@ import org.apache.chemistry.opencmis.cli
 import org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
 import org.apache.chemistry.opencmis.tck.CmisTestResult;
 import org.apache.chemistry.opencmis.tck.impl.AbstractSessionTest;
+import org.apache.chemistry.opencmis.tck.impl.CmisTestResultImpl;
 
 /**
  * Checked out test.
@@ -61,6 +64,14 @@ public class VersioningSmokeTest extends
                 return;
             }
 
+            // gather properties for later
+            String[] propertiesToCheck = new String[doc.getType().getPropertyDefinitions().size()];
+
+            int i = 0;
+            for (String propId : doc.getType().getPropertyDefinitions().keySet()) {
+                propertiesToCheck[i++] = propId;
+            }
+
             // check out
             ObjectId pwcId = doc.checkOut();
             Document pwc = (Document) session.getObject(pwcId, SELECT_ALL_NO_CACHE_OC);
@@ -69,6 +80,11 @@ public class VersioningSmokeTest extends
 
             checkCheckedOut(pwc);
 
+            // check version series
+            // addResult(checkVersionSeries(session,
+            // pwc.getAllVersions(SELECT_ALL_NO_CACHE_OC), propertiesToCheck,
+            // "Test version series after check out"));
+
             // cancel checkout
             pwc.cancelCheckOut();
 
@@ -92,7 +108,7 @@ public class VersioningSmokeTest extends
             checkCheckedIn(newVersion);
 
             // check version history
-            List<Document> versions = newVersion.getAllVersions();
+            List<Document> versions = newVersion.getAllVersions(SELECT_ALL_NO_CACHE_OC);
             f = createResult(FAILURE, "Version series should have 2 versions but has " + versions.size() + "!");
             addResult(assertEquals(2, versions.size(), null, f));
 
@@ -100,6 +116,14 @@ public class VersioningSmokeTest extends
                 f = createResult(FAILURE,
                         "Version history order is incorrect! The first version should be the new version.");
                 addResult(assertEquals(newVersion.getId(), versions.get(0).getId(), null, f));
+
+                f = createResult(FAILURE,
+                        "The new version should be the latest version, but cmis:isLatestVersion is not TRUE.");
+                addResult(assertEquals(true, versions.get(0).isLatestVersion(), null, f));
+
+                f = createResult(FAILURE,
+                        "The new version should be the latest major version, but cmis:isLatestMajorVersion is not TRUE.");
+                addResult(assertEquals(true, versions.get(0).isLatestMajorVersion(), null, f));
             }
 
             if (versions.size() > 1) {
@@ -108,6 +132,10 @@ public class VersioningSmokeTest extends
                 addResult(assertEquals(doc.getId(), versions.get(1).getId(), null, f));
             }
 
+            // check version series
+            addResult(checkVersionSeries(session, pwc.getAllVersions(SELECT_ALL_NO_CACHE_OC), propertiesToCheck,
+                    "Test version series after check in"));
+
             // remove the document
             deleteObject(doc);
         } finally {
@@ -144,4 +172,27 @@ public class VersioningSmokeTest extends
         f = createResult(FAILURE, "Version series is not checked out but cmis:versionSeriesCheckedOutBy has a value!");
         addResult(assertNull(doc.getVersionSeriesCheckedOutBy(), null, f));
     }
+
+    private CmisTestResult checkVersionSeries(Session session, List<Document> versions, String[] properties,
+            String message) {
+        List<CmisTestResult> results = new ArrayList<CmisTestResult>();
+
+        int countLatest = 0;
+        for (Document version : versions) {
+            addResult(results, checkObject(session, version, properties, "Version object check: " + version.getId()));
+
+            if (Boolean.TRUE.equals(version.isLatestVersion())) {
+                countLatest++;
+            }
+        }
+
+        CmisTestResult f = createResult(FAILURE, "A version series should have one latest version, but it has "
+                + countLatest + "!");
+        addResult(results, assertEquals(1, countLatest, null, f));
+
+        CmisTestResultImpl result = createResult(getWorst(results), message);
+        result.getChildren().addAll(results);
+
+        return (result.getStatus().getLevel() <= OK.getLevel() ? null : result);
+    }
 }