コード例 #1
0
        protected TreeNode <string> createObjectsTree(string rootFolderId, enumVersioningState documentsInitialVersion, enumTypesOfFileableObjects returnObjectTypes, int depth,
                                                      int minLayerSize, int maxLayerSize, int returnToLevel)
        {
            if (returnToLevel <= 0)
            {
                returnToLevel = depth + 1;
            }
            Random            randomCounter = new Random();
            TreeNode <string> root          = new TreeNode <string>(rootFolderId, 0);

            if ((depth <= 0) || (maxLayerSize < 1) || (minLayerSize > maxLayerSize))
            {
                return(root);
            }
            Stack <TreeNode <string> > foldersStack = new Stack <TreeNode <string> >();

            foldersStack.Push(root);
            while (foldersStack.Count > 0)
            {
                TreeNode <string> element = foldersStack.Pop();
                if (element.Level <= depth)
                {
                    int layerSize        = minLayerSize + (int)(randomCounter.NextDouble() * (maxLayerSize - minLayerSize));
                    int foldersOnLayer   = !returnObjectTypes.Equals(enumTypesOfFileableObjects.documents) ? 1 + (int)(randomCounter.NextDouble() * (layerSize - 1)) : 0;
                    int documentsOnLayer = layerSize - foldersOnLayer;
                    if (layerSize > 0 && element.Children == null)
                    {
                        element.Children = new Hashtable();
                    }
                    for (int i = 0; i < foldersOnLayer; i++)
                    {
                        string            newFolderId = createAndAssertFolder(element.Element).ObjectId;
                        TreeNode <string> child       = new TreeNode <string>(newFolderId, element.Level + 1);
                        if (element.Level <= returnToLevel && !returnObjectTypes.Equals(enumTypesOfFileableObjects.documents))
                        {
                            element.Children.Add(newFolderId, child);
                        }
                        if (element.Level < depth - 1)
                        {
                            foldersStack.Push(child);
                        }
                    }
                    for (int i = 0; i < documentsOnLayer; i++)
                    {
                        string newDocumentId = createAndAssertObject(element.Element, documentsInitialVersion).ObjectId;
                        if (element.Level <= returnToLevel && !returnObjectTypes.Equals(enumTypesOfFileableObjects.folders))
                        {
                            element.Children.Add(newDocumentId, new TreeNode <string>(newDocumentId, element.Level + 1));
                        }
                    }
                }
            }
            return(root);
        }
コード例 #2
0
        private void getAndAssertDescedansts(FileableObject rootFolder, TreeNode <string> objectsTree, enumTypesOfFileableObjects type, int depth, string filter, enumVersioningState versioningState, RenditionData renditionData)
        {
            cmisObjectInFolderContainerType[] returnedObjects = null;
            if (!enumTypesOfFileableObjects.folders.Equals(type))
            {
                logger.log("Receiving descendants for folder, folderId=" + rootFolder.ObjectId + "',depth='" + depth + "', filter='" + filter + "'");
                logger.log("[NavigationService->getDescendants]");
                returnedObjects = navigationServiceClient.getDescendants(
                    getAndAssertRepositoryId(), rootFolder.ObjectId,
                    Convert.ToString(depth), filter, false, enumIncludeRelationships.none, renditionData != null ? renditionData.getFilter() : null, false, null);
            }
            else
            {
                logger.log("Receiving folders tree, folderId=" + rootFolder.ObjectId + "',depth='" + depth + "', filter='" + filter + "'");
                logger.log("[NavigationService->getFoldersTree]");
                returnedObjects = navigationServiceClient.getFolderTree(
                    getAndAssertRepositoryId(), rootFolder.ObjectId,
                    Convert.ToString(depth), filter, false, enumIncludeRelationships.none, renditionData != null ? renditionData.getFilter() : null, false, null);
            }

            Assert.IsNotNull(returnedObjects, "returned ids are null");
            assertObjectsTree(returnedObjects, objectsTree);
            List <cmisObjectInFolderContainerType> objectsList = convertTreeToObjectsList(returnedObjects);

            foreach (cmisObjectInFolderContainerType cmisObject in objectsList)
            {
                Assert.IsNotNull(cmisObject, "CmisObjectInFolderContainer is null");
                Assert.IsNotNull(cmisObject.objectInFolder, "CmisObjectInFolder is null");
                Assert.IsNotNull(cmisObject.objectInFolder.@object, "CmisObject is null");
                assertObjectProperties([email protected], filter);
                if (renditionData != null)
                {
                    assertRenditions(cmisObject.objectInFolder.@object, renditionData.getFilter(), renditionData.getExpectedKinds(), renditionData.getExpectedMimetypes());
                }
            }
            logger.log("Objects were successfully received");
            logger.log("");
        }
コード例 #3
0
        private void getAndAssertDescedansts(enumTypesOfFileableObjects type, int depth, string filter, enumVersioningState versioningState)
        {
            FileableObject    rootFolder  = createAndAssertFolder(getAndAssertRootFolder());
            TreeNode <string> objectsTree = createObjectsTree(rootFolder.ObjectId, versioningState, type, FOLDERS_DEPTH, MINIMAL_CHILDREN, MAXIMUM_CHILDREN, depth);

            getAndAssertDescedansts(rootFolder, objectsTree, type, depth, filter, versioningState, null);

            objectServiceClient.deleteTree(getAndAssertRepositoryId(), rootFolder.ObjectId, true, enumUnfileObject.delete, true, null);
        }