From ed9443e506566153b7d189611262b577af467755 Mon Sep 17 00:00:00 2001 From: sbisht Date: Wed, 29 Jun 2022 16:03:09 +0530 Subject: [PATCH] ~ /\[ags\] --- .../smoke/BasicRulesIntegration.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/BasicRulesIntegration.java diff --git a/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/smoke/BasicRulesIntegration.java b/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/smoke/BasicRulesIntegration.java new file mode 100644 index 0000000000..3c06a6d0f9 --- /dev/null +++ b/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/smoke/BasicRulesIntegration.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 com.mysql.cj.x.protobuf.MysqlxCrud; +import org.alfresco.rest.rm.community.base.BaseRMRestTest; +import org.alfresco.rest.rm.community.model.record.Record; +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.RecordFolderAPI; +import org.alfresco.rest.rm.community.requests.gscore.api.RecordsAPI; +import org.alfresco.rest.rm.community.requests.gscore.api.UnfiledContainerAPI; +import org.alfresco.rest.v0.RMRolesAndActionsAPI; +import org.alfresco.rest.v0.RulesAPI; +import org.alfresco.test.AlfrescoTest; +import org.alfresco.utility.model.UserModel; +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 java.util.Arrays.asList; +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.rest.rm.community.utils.FilePlanComponentsUtil.*; +import static org.alfresco.utility.data.RandomData.getRandomName; +import static org.alfresco.utility.report.log.Step.STEP; +import static org.springframework.http.HttpStatus.*; +import static org.testng.Assert.assertEquals; + +public class BasicRulesIntegration extends BaseRMRestTest { + + @Autowired + private RMRolesAndActionsAPI rmRolesAndActionsAPI; + private final static String title = "Rule to complete"; + private final static String description = "Rule to describe"; + private final String TEST_PREFIX = generateTestPrefix(CreateCategoriesTests.class); + private final String RM_ADMIN = TEST_PREFIX + "rm_admin"; + @Autowired + private RulesAPI rulesAPI; + + @Test + @AlfrescoTest(jira = "RM-2794") + public void basicRulesIntegration() { + + + 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"); + RecordCategory Category = createRootCategory(getRandomName("recordCategory")); + String recordFolder1 = createRecordFolder(Category.getId(), getRandomName("recFolder")).getId(); + + + //create a rule for completing a record + RuleDefinition ruleDefinition = RuleDefinition.createNewRule().title("name").description("description1") + .applyToChildren(true).title(title) + .actions(Collections.singletonList(ActionsOnRule.COMPLETE_RECORD.getActionValue())); + rulesAPI.createRule(getAdminUser().getUsername(), getAdminUser().getPassword(), NODE_PREFIX + Category.getId(), ruleDefinition); + + RecordFolderAPI recordFolderAPI = getRestAPIFactory().getRecordFolderAPI(); + + // create electronic record in record folder + Record electronicRecord = recordFolderAPI.createRecord(createElectronicRecordModel(), recordFolder1, getFile(IMAGE_FILE)); + assertStatusCode(CREATED); + + // create non-electronic record in record folder + Record nonElectronicRecord = recordFolderAPI.createRecord(createNonElectronicRecordModel(), recordFolder1); + assertStatusCode(CREATED); + + // Update the rules for record Category + rulesAPI.updateRule(getAdminUser().getUsername(), getAdminUser().getPassword(), + NODE_PREFIX + Category.getId(), ruleDefinition.description("description").id(description)); + + + //Delete the root category and rules + deleteRecordCategory(Category.getId()); + rulesAPI.deleteAllRulesOnContainer(getAdminUser().getUsername(), getAdminUser().getPassword(), NODE_PREFIX + Category.getId()); + + } + + + + + +}