From 1257a68f1dd70a355b7b5f2f5938798059fa6906 Mon Sep 17 00:00:00 2001 From: sbisht Date: Thu, 7 Jul 2022 17:35:41 +0530 Subject: [PATCH] [ags] --- .../smoke/UnfiledRecordsRuleTests.java | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 amps/ags/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/smoke/UnfiledRecordsRuleTests.java diff --git a/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/smoke/UnfiledRecordsRuleTests.java b/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/smoke/UnfiledRecordsRuleTests.java new file mode 100644 index 0000000000..d8f65fb912 --- /dev/null +++ b/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/smoke/UnfiledRecordsRuleTests.java @@ -0,0 +1,127 @@ +/* + * #%L + * Alfresco Records Management Module + * %% + * Copyright (C) 2005 - 2022 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * - + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * - + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * - + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * - + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ +package org.alfresco.rest.rm.community.smoke; + + +import org.alfresco.rest.rm.community.base.BaseRMRestTest; +import org.alfresco.rest.rm.community.model.record.RecordContent; +import org.alfresco.rest.rm.community.model.recordcategory.RecordCategory; +import org.alfresco.rest.rm.community.model.recordcategory.RecordCategoryChild; +import org.alfresco.rest.rm.community.model.rules.ActionsOnRule; +import org.alfresco.rest.rm.community.model.rules.RuleDefinition; +import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainer; +import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChild; +import org.alfresco.rest.rm.community.model.unfiledcontainer.UnfiledContainerChildProperties; +import org.alfresco.rest.rm.community.requests.gscore.api.RecordsAPI; +import org.alfresco.rest.v0.RMRolesAndActionsAPI; +import org.alfresco.rest.v0.RulesAPI; +import org.alfresco.test.AlfrescoTest; +import org.springframework.beans.factory.annotation.Autowired; +import org.testng.annotations.Test; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import static org.alfresco.rest.core.v0.BaseAPI.NODE_PREFIX; +import static org.alfresco.rest.rm.community.base.TestData.ELECTRONIC_RECORD_NAME; +import static org.alfresco.rest.rm.community.base.TestData.NONELECTRONIC_RECORD_NAME; +import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAlias.UNFILED_RECORDS_CONTAINER_ALIAS; +import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.*; +import static org.alfresco.rest.rm.community.util.CommonTestUtils.generateTestPrefix; +import static org.alfresco.utility.data.RandomData.getRandomName; +import static org.alfresco.utility.report.log.Step.STEP; +import static org.springframework.http.HttpStatus.*; +public class UnfiledRecordsRuleTests extends BaseRMRestTest { + + @Autowired + private RMRolesAndActionsAPI rmRolesAndActionsAPI; + private final String TEST_PREFIX = generateTestPrefix(CreateCategoriesTests.class); + private final String RM_ADMIN = TEST_PREFIX + "rm_admin"; + private RecordCategory Category2; + private RecordCategoryChild Folder2; + private final List unfiledRecords = new ArrayList<>(); + @Autowired + private RulesAPI rulesAPI; + + + @Test + @AlfrescoTest(jira = "RM-2794") + public void unfiledRecordsRule() { + + + STEP("Create the RM site if doesn't exist"); + createRMSiteIfNotExists(); + + STEP("Create RM Admin user"); + rmRolesAndActionsAPI.createUserAndAssignToRole(getAdminUser().getUsername(), getAdminUser().getPassword(), RM_ADMIN, + getAdminUser().getPassword(), + "Administrator"); + + STEP("Create record categories and record folders"); + Category2 = createRootCategory(getRandomName("recordCategory")); + Folder2 = createFolder(Category2.getId(), getRandomName("recordFolder")); + + STEP("Get the unfiled records container"); + UnfiledContainer container = getRestAPIFactory().getUnfiledContainersAPI().getUnfiledContainer(UNFILED_RECORDS_CONTAINER_ALIAS); + + // Check the response code + assertStatusCode(OK); + + //create a rule + RuleDefinition ruleDefinition = RuleDefinition.createNewRule().title("name").description("description") + .applyToChildren(true) + .actions(Collections.singletonList(ActionsOnRule.FILE_TO.getActionValue())); + rulesAPI.createRule(getAdminUser().getUsername(), getAdminUser().getPassword(), NODE_PREFIX + container.getId(), ruleDefinition); + + //upload an electronic record + UnfiledContainerChild electronicRecord = UnfiledContainerChild.builder() + .name(ELECTRONIC_RECORD_NAME) + .nodeType(CONTENT_TYPE) + .content(RecordContent.builder().mimeType("text/plain").build()) + .build(); + assertStatusCode(OK); + + + // create a non-electronic record + UnfiledContainerChild nonelectronicRecord = UnfiledContainerChild.builder() + .properties(UnfiledContainerChildProperties.builder() + .description(NONELECTRONIC_RECORD_NAME) + .title("Title") + .build()) + .name(NONELECTRONIC_RECORD_NAME) + .nodeType(NON_ELECTRONIC_RECORD_TYPE) + .build(); + assertStatusCode(OK); + + //delete the record created, delete the rule from UnfilledRecord page, delete the category created + rulesAPI.deleteAllRulesOnContainer(getAdminUser().getUsername(), getAdminUser().getPassword(), NODE_PREFIX + container.getId()); + deleteRecordCategory(Category2.getId()); + assertStatusCode(NO_CONTENT); + + } + + }