public void testAddingObjectWithAllVersions()
        {
            if (!isCapabilityMultifilingEnabled())
            {
                Assert.Skip("Multi-Filing capability is not supported");
            }
            if (!isVersioningAllowed())
            {
                Assert.Skip("Versioning is not supported for " + getAndAssertDocumentTypeId() + " Document Type");
            }
            MultifiledObject  document = createAndAssertMultifilledDocument(getAndAssertRootFolder(), 5);
            string            versionedMultiFilledDocument = createAndAssertVersionedDocument(document.DocumentObject.ObjectId, 5, true);
            FileableObject    folder     = createAndAssertFolder(getAndAssertRootFolder());
            cmisExtensionType extensions = new cmisExtensionType();

            multifilingServiceClient.addObjectToFolder(getAndAssertRepositoryId(), document.DocumentObject.ObjectId, folder.ObjectId, true, ref extensions);
            cmisObjectInFolderListType children = getAndAssertChildren(folder.ObjectId, "*", null, 10L, 0L, null);

            if (!isVersionSpecificFiling())
            {
                logger.log("Children were received. Version Specific Filing is not supported. 5 Versions were created for document");
                Assert.AreEqual(1, children.objects.Length, "Amount of Children more than 1");
            }
            else
            {
                logger.log("Children were received. Version Specific Filing is supported. 5 Versions were created for document");
                Assert.IsTrue((6 == children.objects.Length), "Amount of Children is not equal to 6");
            }
            deleteAndAssertObject(versionedMultiFilledDocument, true);
            deleteAndAssertObject(folder, false);
            foreach (CmisObject parent in document.Parents)
            {
                deleteAndAssertObject(parent, false);
            }
        }
Beispiel #2
0
        public getChildrenResponse GetChildren(getChildrenRequest request)
        {
            var resultList = new cmisObjectInFolderListType();

            var repository = ModelHelper.GetRepository(request.repositoryId);


            IEnumerable <Kooboo.CMS.Content.Models.TextFolder> childFolders = null;

            if (request.folderId == "/")
            {
                childFolders = _textFolderManager.All(repository, null);
            }
            else
            {
                var textFolder = ModelHelper.GetTextFolder(request.repositoryId, request.folderId);
                childFolders = _textFolderManager.ChildFolders(textFolder);
            }

            resultList.numItems = childFolders.Count().ToString();
            var skipCount = 0;

            if (!string.IsNullOrEmpty(request.skipCount))
            {
                skipCount = request.skipCount.As <int>();
            }
            childFolders = childFolders.Skip(skipCount);
            if (string.IsNullOrEmpty(request.maxItems))
            {
                var maxItems = request.maxItems.As <int>();
                childFolders = childFolders.Take(maxItems);
            }
            resultList.objects = childFolders.Select(it => ToPathedCmisObject(it) /*ToPathedCmisObject(it)*/).ToArray();
            return(new getChildrenResponse(resultList));
        }
        public void getAndAssertChildren(ObjectsHierarchy hierarchy, string filter, int skipCount, int maxItems, RenditionData renditionData)
        {
            string[] foldersIds           = hierarchy.FolderIds.ToArray();
            string[] documentsIds         = hierarchy.DocumentIds.ToArray();
            string[] allCreatedObjectsIds = hierarchy.toIdsArray();
            string   rootFolderId         = hierarchy.RootFolder.ObjectId;

            cmisObjectInFolderListType children = getAndAssertChildren(rootFolderId, filter, null, maxItems, skipCount, renditionData != null ? renditionData.getFilter() : null);

            cmisObjectType[] childrenObjects = new cmisObjectType[children.objects.Length];
            for (int i = 0; i < children.objects.Length; ++i)
            {
                childrenObjects[i] = children.objects[i] != null ? children.objects[i].@object : null;
            }

            if (maxItems > 0)
            {
                int resultCount = (skipCount + maxItems) < allCreatedObjectsIds.Length ? maxItems : allCreatedObjectsIds.Length - skipCount;
                Assert.IsTrue(resultCount == childrenObjects.Length, "Count of returned items doesn't equal to expected count");
            }
            else
            {
                assertObjectsByType(enumTypesOfFileableObjects.any, documentsIds, foldersIds, allCreatedObjectsIds, childrenObjects);
            }
            foreach (cmisObjectType cmisObject in childrenObjects)
            {
                assertObjectProperties(cmisObject.properties, filter);
                if (renditionData != null)
                {
                    assertRenditions(cmisObject, renditionData.getFilter(), renditionData.getExpectedKinds(), renditionData.getExpectedMimetypes());
                }
            }
            logger.log("Children were successfully received");
            logger.log("");
        }
Beispiel #4
0
        public static void Main(string[] args)
        {
            initialize();

            cmisRepositoryEntryType[] repositories = repositoryService.getRepositories(null);
            string repositoryId = repositories[0].repositoryId;

            Console.WriteLine("Repositories description were received. Repositories amount: '" + repositories.Length + "'. First Repository Id='" + repositoryId + "'.");
            string rootFolder = repositoryService.getRepositoryInfo(repositoryId, null).rootFolderId;

            Console.WriteLine("Root folder Id='" + rootFolder + "'.\n");

            Console.WriteLine("Trying to get RepositoryInfo for the first repository:");
            cmisRepositoryInfoType repositoryInfo = repositoryService.getRepositoryInfo(repositoryId, null);

            Console.WriteLine("Repository info was received, name='" + repositoryInfo.repositoryName + "'.\n");

            try
            {
                Console.WriteLine("Actual Reaction of ObjectService.getProperties() service method with invalid Object Id:");
                objectService.getProperties(repositoryId, "Invalid Object Id", "*", null);
                Console.WriteLine(INVALID_REACTION_MESSAGE);
            }
            catch (FaultException <cmisFaultType> e)
            {
                Console.WriteLine("Expected error was returned. Message: " + e.Message + "\n");
            }

            cmisObjectInFolderListType childrenResponse = null;

            try
            {
                Console.WriteLine("Trying to receive the first 20 Children of Root Folder...");
                childrenResponse = navigationService.getChildren(repositoryId, rootFolder, "*", null, false, enumIncludeRelationships.none, null, false, "20", "0", null);
            }
            catch (FaultException <cmisFaultType> e)
            {
                Console.WriteLine("Can't receive children of Root Folder. Cause error message: " + e.Message);
            }

            if (null != childrenResponse && null != childrenResponse.objects)
            {
                Console.WriteLine("Children of Root Folder were received.");
                Console.WriteLine("Total amount: '" + childrenResponse.numItems + "'");
                Console.WriteLine("Received: '" + childrenResponse.objects.Length + "'");
                Console.WriteLine("Has More Items='" + childrenResponse.hasMoreItems + "'");
                Console.WriteLine("Root folder listing: ");
                foreach (cmisObjectInFolderType cmisObject in childrenResponse.objects)
                {
                    if (null != cmisObject && null != cmisObject.@object)
                    {
                        cmisProperty nameProperty     = searchForProperty([email protected], "cmis:name");
                        cmisProperty baseTypeProperty = searchForProperty([email protected], "cmis:baseTypeId");
                        Console.WriteLine((("[" + getPropertyValue(baseTypeProperty) + "] ")) + getPropertyValue(nameProperty) + "'");
                    }
                }
            }
        }
        public void testPathSegments()
        {
            string folderId   = createAndAssertFolder(getAndAssertRootFolder()).ObjectId;
            string documentId = createAndAssertObject(folderId, enumVersioningState.none).ObjectId;

            logger.log("[NavigationService->getChildren]");
            cmisObjectInFolderListType childrenResponse = navigationServiceClient.getChildren(getAndAssertRepositoryId(), getAndAssertRootFolder(), "*", null, false,
                                                                                              enumIncludeRelationships.none, null, true, Convert.ToString(MAX_REQUESTED_COUNT), TEXTUAL_ZERO, null);

            Assert.IsNotNull(childrenResponse.objects != null, "GetChildren response is NULL");

            string folderPathSegment = null;

            foreach (cmisObjectInFolderType objectInFolder in childrenResponse.objects)
            {
                Assert.IsNotNull(objectInFolder, "CmisObjectInFolder is NULL");
                Assert.IsNotNull(objectInFolder.pathSegment, "pathSegment is NULL");
                Assert.IsNotNull(objectInFolder.@object, "CmisObject is NULL");
                Assert.IsNotNull([email protected], "Properties are NULL");
                if (folderId.Equals((string)searchAndAssertPropertyByName([email protected], OBJECT_IDENTIFIER_PROPERTY, false)))
                {
                    folderPathSegment = objectInFolder.pathSegment;
                }
            }

            Assert.IsNotNull(folderPathSegment, "pathSegment is NULL");

            logger.log("[NavigationService->getObjectParents]");
            cmisObjectParentsType[] parentsResponse = navigationServiceClient.getObjectParents(getAndAssertRepositoryId(), documentId, "*",
                                                                                               false, enumIncludeRelationships.none, null, true, null);
            Assert.IsNotNull(parentsResponse, "GetObjectParents response is NULL");
            Assert.IsTrue(parentsResponse.Length > 0, "GetObjectParents response is empty");
            string documentPathSegment = parentsResponse[0].relativePathSegment;

            Assert.IsNotNull(documentPathSegment, "pathSegment is NULL");

            string folderPath   = "/" + folderPathSegment;
            string documentPath = "/" + folderPathSegment + "/" + documentPathSegment;

            logger.log("[ObjectService->getObjectByPath]");
            cmisObjectType objectByPath = objectServiceClient.getObjectByPath(getAndAssertRepositoryId(), folderPath, OBJECT_IDENTIFIER_PROPERTY, false, enumIncludeRelationships.none, null, null, null, null);

            Assert.IsNotNull(objectByPath, "GetObjectByPath response is NULL");
            Assert.IsNotNull(objectByPath.properties, "Object properties are NULL");
            string folderIdByPath = (string)searchAndAssertPropertyByName(objectByPath.properties.Items, OBJECT_IDENTIFIER_PROPERTY, false);

            Assert.AreEqual(folderId, folderIdByPath, "Returned by path objectId is not equal to expected");

            logger.log("[ObjectService->getObjectByPath]");
            objectByPath = objectServiceClient.getObjectByPath(getAndAssertRepositoryId(), documentPath, OBJECT_IDENTIFIER_PROPERTY, false, enumIncludeRelationships.none, null, null, null, null);
            Assert.IsNotNull(objectByPath, "GetObjectByPath response is NULL");
            Assert.IsNotNull(objectByPath.properties, "Object properties are NULL");
            string documentIdByPath = (string)searchAndAssertPropertyByName(objectByPath.properties.Items, OBJECT_IDENTIFIER_PROPERTY, false);

            Assert.AreEqual(documentId, documentIdByPath, "Returned by path objectId is not equal to expected");

            logger.log("[NavigationService->getDescedants]");
            cmisObjectInFolderContainerType[] descendantsResponse = navigationServiceClient.getDescendants(getAndAssertRepositoryId(), folderId, "2", ANY_PROPERTY_FILTER, false, enumIncludeRelationships.none, null, true, null);
            Assert.IsNotNull(descendantsResponse, "GetDescendants response is NULL");

            foreach (cmisObjectInFolderContainerType objectInFolderContainer in descendantsResponse)
            {
                Assert.IsNotNull(objectInFolderContainer, "CmisObjectInFolderContainer is NULL");
                Assert.IsNotNull(objectInFolderContainer.objectInFolder, "CmisObjectInFolder is NULL");
                Assert.IsNotNull(objectInFolderContainer.objectInFolder.pathSegment, "pathSegment is NULL");
                Assert.IsNotNull(objectInFolderContainer.objectInFolder.@object, "CmisObject is NULL");
                if (documentId.Equals((string)searchAndAssertPropertyByName([email protected], OBJECT_IDENTIFIER_PROPERTY, false)))
                {
                    Assert.AreEqual(documentPathSegment, objectInFolderContainer.objectInFolder.pathSegment, "Returned by path objectId is not equal to expected");
                }
            }
        }