Author: fmui
Date: Wed Jun  3 14:22:07 2015
New Revision: 1683344

URL: http://svn.apache.org/r1683344
Log:
fixed InMemory getTypeChildren()

Modified:
    
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java
    
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/BaseTypesTest.java

Modified: 
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java?rev=1683344&r1=1683343&r2=1683344&view=diff
==============================================================================
--- 
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java
 (original)
+++ 
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java
 Wed Jun  3 14:22:07 2015
@@ -21,6 +21,7 @@ package org.apache.chemistry.opencmis.in
 import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 import java.util.ListIterator;
 
@@ -85,8 +86,17 @@ public class InMemoryRepositoryServiceIm
         } else {
             children = getTypeDescendants(context, repositoryId, typeId, 
BigInteger.valueOf(1), inclPropDefs, null);
         }
+
+        if (skip >= children.size()) {
+            result.setHasMoreItems(false);
+            result.setNumItems(BigInteger.valueOf(children.size()));
+            result.setList(Collections.<TypeDefinition> emptyList());
+            return result;
+        }
+
         result.setNumItems(BigInteger.valueOf(children.size()));
         result.setHasMoreItems(children.size() > max - skip);
+
         List<TypeDefinition> childrenTypes = new ArrayList<TypeDefinition>();
         ListIterator<TypeDefinitionContainer> it = children.listIterator(skip);
         if (max < 0) {
@@ -143,9 +153,10 @@ public class InMemoryRepositoryServiceIm
         return result;
     }
 
-    public TypeDefinition createType(CallContext context, String repositoryId, 
TypeDefinition type, ExtensionsData extension) {
+    public TypeDefinition createType(CallContext context, String repositoryId, 
TypeDefinition type,
+            ExtensionsData extension) {
 
-        validator.createType(context, repositoryId, type, extension);        
+        validator.createType(context, repositoryId, type, extension);
         TypeManager typeManager = fStoreManager.getTypeManager(repositoryId);
         AbstractTypeDefinition newType = TypeValidator.completeType(type);
         TypeValidator.adjustTypeNamesAndId(newType);
@@ -154,8 +165,9 @@ public class InMemoryRepositoryServiceIm
         return newType;
     }
 
-    public TypeDefinition updateType(CallContext context, String repositoryId, 
TypeDefinition type, ExtensionsData extension) {
-        validator.updateType(context, repositoryId, type, extension);        
+    public TypeDefinition updateType(CallContext context, String repositoryId, 
TypeDefinition type,
+            ExtensionsData extension) {
+        validator.updateType(context, repositoryId, type, extension);
         String typeId = type.getId();
         TypeManager typeManager = fStoreManager.getTypeManager(repositoryId);
         if (null == typeManager) {
@@ -173,7 +185,7 @@ public class InMemoryRepositoryServiceIm
 
     public void deleteType(CallContext context, String repositoryId, String 
typeId, ExtensionsData extension) {
 
-        validator.deleteType(context, repositoryId, typeId, extension);        
+        validator.deleteType(context, repositoryId, typeId, extension);
         TypeManager typeManager = fStoreManager.getTypeManager(repositoryId);
 
         ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);

Modified: 
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/BaseTypesTest.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/types/BaseTypesTest.java?rev=1683344&r1=1683343&r2=1683344&view=diff
==============================================================================
--- 
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/BaseTypesTest.java
 (original)
+++ 
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/BaseTypesTest.java
 Wed Jun  3 14:22:07 2015
@@ -183,11 +183,19 @@ public class BaseTypesTest extends Abstr
                         BigInteger.valueOf(6), null);
         if (typeDefinitionList == null) {
             addResult(createResult(FAILURE, "getTypeChildren() returned 
nothing!"));
-        } else if (typeDefinitionList.getList() != null && 
!typeDefinitionList.getList().isEmpty()) {
-            addResult(createResult(
-                    FAILURE,
-                    "A getTypeChildren() call on the base types must retrun an 
empty list if skipCount is >= 6! The repository returned a list of "
-                            + typeDefinitionList.getList().size() + " 
elements."));
+        } else {
+            if (typeDefinitionList.getList() != null && 
!typeDefinitionList.getList().isEmpty()) {
+                addResult(createResult(
+                        FAILURE,
+                        "A getTypeChildren() call on the base types must 
retrun an empty list if skipCount is >= 6! The repository returned a list of "
+                                + typeDefinitionList.getList().size() + " 
elements."));
+            }
+
+            if (Boolean.TRUE.equals(typeDefinitionList.hasMoreItems())) {
+                addResult(createResult(
+                        FAILURE,
+                        "A getTypeChildren() call on the base types must 
retrun an empty list if skipCount is >= 6! The repository returned hasMoreItems 
== true."));
+            }
         }
 
         // test getTypeDescendants()


Reply via email to