mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
[MNT-24127] Added Endpoint to Calculate Size of the folder with Integration Test Cases [ags][tas]
This commit is contained in:
@@ -25,13 +25,23 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.rest.api.tests;
|
package org.alfresco.rest.api.tests;
|
||||||
|
|
||||||
|
import org.alfresco.repo.content.MimetypeMap;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
|
import org.alfresco.rest.api.model.ContentInfo;
|
||||||
|
import org.alfresco.rest.api.model.Node;
|
||||||
import org.alfresco.rest.api.model.NodeTarget;
|
import org.alfresco.rest.api.model.NodeTarget;
|
||||||
import org.alfresco.rest.api.model.Site;
|
import org.alfresco.rest.api.model.Site;
|
||||||
import org.alfresco.rest.api.tests.client.HttpResponse;
|
import org.alfresco.rest.api.tests.client.HttpResponse;
|
||||||
import org.alfresco.rest.api.tests.util.RestApiUtil;
|
import org.alfresco.rest.api.tests.util.RestApiUtil;
|
||||||
|
import org.alfresco.service.cmr.repository.ContentData;
|
||||||
|
import org.alfresco.service.cmr.repository.MimetypeService;
|
||||||
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
|
import org.alfresco.service.cmr.repository.StoreRef;
|
||||||
import org.alfresco.service.cmr.security.PermissionService;
|
import org.alfresco.service.cmr.security.PermissionService;
|
||||||
import org.alfresco.service.cmr.site.SiteVisibility;
|
import org.alfresco.service.cmr.site.SiteVisibility;
|
||||||
|
import org.alfresco.service.namespace.NamespaceService;
|
||||||
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.FixMethodOrder;
|
import org.junit.FixMethodOrder;
|
||||||
@@ -39,6 +49,11 @@ import org.junit.Test;
|
|||||||
import org.junit.runners.MethodSorters;
|
import org.junit.runners.MethodSorters;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -60,6 +75,10 @@ public class NodeFolderSizeApiTest extends AbstractBaseApiTest
|
|||||||
|
|
||||||
protected PermissionService permissionService;
|
protected PermissionService permissionService;
|
||||||
|
|
||||||
|
private NodeService nodeService;
|
||||||
|
|
||||||
|
private MimetypeService mimeTypeService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The logger
|
* The logger
|
||||||
*/
|
*/
|
||||||
@@ -85,6 +104,8 @@ public class NodeFolderSizeApiTest extends AbstractBaseApiTest
|
|||||||
{
|
{
|
||||||
super.setup();
|
super.setup();
|
||||||
permissionService = applicationContext.getBean("permissionService", PermissionService.class);
|
permissionService = applicationContext.getBean("permissionService", PermissionService.class);
|
||||||
|
nodeService = applicationContext.getBean("NodeService", NodeService.class);
|
||||||
|
mimeTypeService = applicationContext.getBean("MimetypeService", MimetypeService.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -114,6 +135,71 @@ public class NodeFolderSizeApiTest extends AbstractBaseApiTest
|
|||||||
assertNotNull(contentNodeId);
|
assertNotNull(contentNodeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test case to trigger POST/calculateSize with >200 Children Nodes.
|
||||||
|
* {@literal <host>:<port>/alfresco/api/<networkId>/public/alfresco/versions/1/nodes/<nodeId>/calculateSize}
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testPerformance() throws Exception
|
||||||
|
{
|
||||||
|
setRequestContext(user1);
|
||||||
|
Node n;
|
||||||
|
|
||||||
|
// Logging initial time.
|
||||||
|
LocalDateTime eventTimestamp = LocalDateTime.now();
|
||||||
|
String formattedTimestamp = eventTimestamp.format(DateTimeFormatter.ofPattern("yyyy:MM:dd HH:mm:ss"));
|
||||||
|
LOG.info(" ********** In NodeFolderSizeApiTest:testPerformance Initial Time : {}", formattedTimestamp);
|
||||||
|
|
||||||
|
String siteTitle = "RandomSite" + System.currentTimeMillis();
|
||||||
|
userOneN1Site = createSite("RN"+RUNID, siteTitle, siteTitle, SiteVisibility.PRIVATE, 201);
|
||||||
|
|
||||||
|
// Create a folder within the site document's library.
|
||||||
|
String folderName = "folder" + System.currentTimeMillis();
|
||||||
|
String folderId = addToDocumentLibrary(userOneN1Site, folderName, TYPE_CM_FOLDER);
|
||||||
|
NodeRef nodeRef = new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE,folderId);
|
||||||
|
QName qName = nodeService.getType(nodeRef);
|
||||||
|
|
||||||
|
for(int i =0;i<300;i++)
|
||||||
|
{
|
||||||
|
n = new Node();
|
||||||
|
n.setName("c1" + RUNID);
|
||||||
|
n.setNodeType(TYPE_CM_FOLDER);
|
||||||
|
QName assocChildQName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, QName.createValidLocalName(n.getName()));
|
||||||
|
|
||||||
|
if(i%7==0)
|
||||||
|
{
|
||||||
|
for(int j =0 ; j<=5; j++)
|
||||||
|
{
|
||||||
|
n = new Node();
|
||||||
|
n.setName("c2" + RUNID);
|
||||||
|
n.setNodeType(TYPE_CM_CONTENT);
|
||||||
|
ContentData contentData = new ContentData(null, MimetypeMap.MIMETYPE_TEXT_PLAIN, 10L, null);
|
||||||
|
String mimeType = contentData.getMimetype();
|
||||||
|
String mimeTypeName = mimeTypeService.getDisplaysByMimetype().get(mimeType);
|
||||||
|
ContentInfo contentInfo = new ContentInfo(mimeType, mimeTypeName, contentData.getSize(),contentData.getEncoding());
|
||||||
|
n.setContent(contentInfo);
|
||||||
|
QName assocChildQNameInternal = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, QName.createValidLocalName(n.getName()));
|
||||||
|
nodeService.addChild(n.getNodeRef(), new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, n.getName()), qName, assocChildQNameInternal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nodeService.addChild(nodeRef, new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, n.getName()), qName, assocChildQName);
|
||||||
|
}
|
||||||
|
Map<String, String> params = new HashMap<>();
|
||||||
|
params.put("nodeId",folderId);
|
||||||
|
params.put("maxItems","100");
|
||||||
|
|
||||||
|
HttpResponse response = post(getFolderSizeUrl(folderId), toJsonAsStringNonNull(params), 202);
|
||||||
|
Object document = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Object.class);
|
||||||
|
String contentNodeId = document.toString();
|
||||||
|
if(contentNodeId != null)
|
||||||
|
{
|
||||||
|
eventTimestamp = LocalDateTime.now();
|
||||||
|
formattedTimestamp = eventTimestamp.format(DateTimeFormatter.ofPattern("yyyy:MM:dd HH:mm:ss"));
|
||||||
|
LOG.info(" ********** In NodeFolderSizeApiTest:testPerformance Completed Time : {}", formattedTimestamp);
|
||||||
|
}
|
||||||
|
assertNotNull(contentNodeId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test case for GET/calculateSize, to retrieve FolderSize.
|
* Test case for GET/calculateSize, to retrieve FolderSize.
|
||||||
* <p>GET:</p>
|
* <p>GET:</p>
|
||||||
|
Reference in New Issue
Block a user