Skip to content

Commit

Permalink
MOSIP-37857 Partner Admin API automation (#1041)
Browse files Browse the repository at this point in the history
* MOSIP-37857 with correct branch merged

* MOSIP-37857

Signed-off-by: Sohan Kumar Dey <[email protected]>

* MOSIP-37857

Signed-off-by: Sohan Kumar Dey <[email protected]>

* MOSIP-37857

Signed-off-by: Sohan Kumar Dey <[email protected]>

* MOSIP-37857

Signed-off-by: Sohan Kumar Dey <[email protected]>

* Delete et --soft d2d5be7e

Signed-off-by: Sohan Kumar Dey <[email protected]>

---------

Signed-off-by: Sohan Kumar Dey <[email protected]>
  • Loading branch information
Sohandey authored Dec 16, 2024
1 parent f340d23 commit d28381e
Show file tree
Hide file tree
Showing 40 changed files with 511 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
package io.mosip.testrig.apirig.testscripts;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.json.JSONObject;
import org.testng.ITest;
import org.testng.ITestContext;
import org.testng.ITestResult;
import org.testng.Reporter;
import org.testng.SkipException;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.testng.internal.BaseTestMethod;
import org.testng.internal.TestResult;

import io.mosip.testrig.apirig.dto.OutputValidationDto;
import io.mosip.testrig.apirig.dto.TestCaseDTO;
import io.mosip.testrig.apirig.testrunner.HealthChecker;
import io.mosip.testrig.apirig.utils.AdminTestException;
import io.mosip.testrig.apirig.utils.AdminTestUtil;
import io.mosip.testrig.apirig.utils.AuthenticationTestException;
import io.mosip.testrig.apirig.utils.ConfigManager;
import io.mosip.testrig.apirig.utils.GlobalConstants;
import io.mosip.testrig.apirig.utils.OutputValidationUtil;
import io.mosip.testrig.apirig.utils.ReportUtil;
import io.restassured.response.Response;

public class PatchWithPathParam extends AdminTestUtil implements ITest {
private static final Logger logger = Logger.getLogger(PatchWithPathParam.class);
protected String testCaseName = "";
public Response response = null;

@BeforeClass
public static void setLogLevel() {
if (ConfigManager.IsDebugEnabled())
logger.setLevel(Level.ALL);
else
logger.setLevel(Level.ERROR);
}

/**
* get current testcaseName
*/
@Override
public String getTestName() {
return testCaseName;
}

/**
* Data provider class provides test case list
*
* @return object of data provider
*/
@DataProvider(name = "testcaselist")
public Object[] getTestCaseList(ITestContext context) {
String ymlFile = context.getCurrentXmlTest().getLocalParameters().get("ymlFile");
logger.info("Started executing yml: " + ymlFile);
return getYmlTestData(ymlFile);
}

/**
* Test method for OTP Generation execution
*
* @param objTestParameters
* @param testScenario
* @param testcaseName
* @throws AuthenticationTestException
* @throws AdminTestException
*/
@Test(dataProvider = "testcaselist")
public void test(TestCaseDTO testCaseDTO) throws AuthenticationTestException, AdminTestException {
testCaseName = testCaseDTO.getTestCaseName();
if (HealthChecker.signalTerminateExecution) {
throw new SkipException(
GlobalConstants.TARGET_ENV_HEALTH_CHECK_FAILED + HealthChecker.healthCheckFailureMapS);
}


String[] templateFields = testCaseDTO.getTemplateFields();

if (testCaseDTO.getTemplateFields() != null && templateFields.length > 0) {
ArrayList<JSONObject> inputtestCases = AdminTestUtil.getInputTestCase(testCaseDTO);
ArrayList<JSONObject> outputtestcase = AdminTestUtil.getOutputTestCase(testCaseDTO);
for (int i = 0; i < languageList.size(); i++) {
response = patchWithPathParamAndCookie(ApplnURI + testCaseDTO.getEndPoint(),
getJsonFromTemplate(inputtestCases.get(i).toString(), testCaseDTO.getInputTemplate()),
COOKIENAME, testCaseDTO.getRole(), testCaseDTO.getTestCaseName());

Map<String, List<OutputValidationDto>> ouputValid = OutputValidationUtil.doJsonOutputValidation(
response.asString(),
getJsonFromTemplate(outputtestcase.get(i).toString(), testCaseDTO.getOutputTemplate()),
testCaseDTO, response.getStatusCode());
Reporter.log(ReportUtil.getOutputValidationReport(ouputValid));

if (!OutputValidationUtil.publishOutputResult(ouputValid))
throw new AdminTestException("Failed at output validation");
}
}

else {
response = patchWithPathParamAndCookie(ApplnURI + testCaseDTO.getEndPoint(),
getJsonFromTemplate(testCaseDTO.getInput(), testCaseDTO.getInputTemplate()), COOKIENAME,
testCaseDTO.getRole(), testCaseDTO.getTestCaseName());

Map<String, List<OutputValidationDto>> ouputValid = OutputValidationUtil.doJsonOutputValidation(
response.asString(), getJsonFromTemplate(testCaseDTO.getOutput(), testCaseDTO.getOutputTemplate()),
testCaseDTO, response.getStatusCode());
Reporter.log(ReportUtil.getOutputValidationReport(ouputValid));

if (!OutputValidationUtil.publishOutputResult(ouputValid))
throw new AdminTestException("Failed at output validation");
}
}

/**
* The method ser current test name to result
*
* @param result
*/
@AfterMethod(alwaysRun = true)
public void setResultTestName(ITestResult result) {
try {
Field method = TestResult.class.getDeclaredField("m_method");
method.setAccessible(true);
method.set(result, result.getMethod().clone());
BaseTestMethod baseTestMethod = (BaseTestMethod) result.getMethod();
Field f = baseTestMethod.getClass().getSuperclass().getDeclaredField("m_methodName");
f.setAccessible(true);
f.set(baseTestMethod, testCaseName);
} catch (Exception e) {
Reporter.log("Exception : " + e.getMessage());
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
DeactivatePolicyGroup:
Pms_DeactivatePolicyGroup_All_Valid_Smoke:
endPoint: /v1/policymanager/policies/group/{policyGroupId}
description: Deactivate Policy Groups
role: partnerrevamp
checkErrorsOnlyInResponse: true
restMethod: get
inputTemplate: pms/DeactivatePolicyGroup/deactivatePolicyGroup
outputTemplate: pms/DeactivatePolicyGroup/deactivatePolicyGroupResult
input: '{
"policyGroupId": "$ID:DefinePolicyGroup_create_then_deactivate_sid_id$"
}'
output: ' {
}'
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"policyGroupId":"{{policyGroupId}}"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,41 @@ definePolicyGroup:
"desc": "$IGNORE$",
"is_Active": true
}'
Pms_DefinePolicyGroup_create_then_deactivate_sid:
endPoint: /v1/policymanager/policies/group/new
description: Creating a PolicyGroup
role: partnerrevamp
restMethod: post
inputTemplate: pms/DefinePolicyGroup/definePolicyGroup
outputTemplate: pms/DefinePolicyGroup/definePolicyGroupResult
input: '{
"desc": "desc mosip policy group1923456789",
"name": "mosip policy group1923456789",
"requesttime": "$TIMESTAMP$"
}'
output: ' {
"name": "$IGNORE$",
"desc": "$IGNORE$",
"is_Active": true
}'
Pms_DefinePolicyGroup_create_then_deactivate_sid:
endPoint: /v1/policymanager/policies/group/new
description: Creating a PolicyGroup
role: partnerrevamp
restMethod: post
inputTemplate: pms/DefinePolicyGroup/definePolicyGroup
outputTemplate: pms/DefinePolicyGroup/definePolicyGroupResult
input: '{
"desc": "desc mosip policy group1923456",
"name": "mosip policy group1923456",
"requesttime": "$TIMESTAMP$"
}'
output: ' {
"name": "$IGNORE$",
"desc": "$IGNORE$",
"is_Active": true
}'


Pms_DefinePolicyGroup_AlreadyExists_InValid:
endPoint: /v1/policymanager/policies/group/new
Expand Down Expand Up @@ -137,4 +172,5 @@ definePolicyGroup:
"message": "Forbidden"
}
]
}'
}'

Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
GetAllOauthClient:
Pms_GetAllOauthClient_All_Valid_Smoke:
endPoint: /v1/partnermanager/oauth/partners/clients
description: Fetching all OIDC Clients of the loggedin Partner
role: partnerrevamp
checkErrorsOnlyInResponse: true
restMethod: get
inputTemplate: pms/GetAllOauthClient/getAllOauthClient
outputTemplate: pms/GetAllOauthClient/getAllOauthClientResult
input: '{
}'
output: '{
"errors": [
{
"errorCode": "PMS_CERTIFICATE_ERROR_002"
}
]
}'
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
GetAllOidcClient:
Pms_GetAllOidcClient_without_Auth:
endPoint: /v1/partnermanager/oauth/clients
description: Fetching all OIDC Clients of the loggedin Partner
role: batch
checkErrorsOnlyInResponse: true
restMethod: get
inputTemplate: pms/GetAllOidcClient/getAllOidcClient
outputTemplate: pms/GetAllOidcClient/getAllOidcClientResult
input: '{
}'
output: '{
"errors": [
{
"errorCode": "KER-ATH-401"
}
]
}'
Pms_GetAllOidcClient_Invalid_Auth:
endPoint: /v1/partnermanager/oauth/clients
description: Fetching all OIDC Clients of the loggedin Partner
role: regproc
checkErrorsOnlyInResponse: true
restMethod: get
inputTemplate: pms/GetAllOidcClient/getAllOidcClient
outputTemplate: pms/GetAllOidcClient/getAllOidcClientResult
input: '{
}'
output: '{
"errors": [
{
"errorCode": "KER-ATH-403"
}
]
}'
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
GetAllPartnerPolicyRequest:
Pms_GetAllPartnerPolicyRequest_All_Valid_Smoke:
endPoint: /v1/partnermanager/partners/partner-policy-requests
description: Fetching all the active Partnered PolicyGroups
role: partnerrevamp
checkErrorsOnlyInResponse: true
restMethod: get
inputTemplate: pms/GetAllPartnerPolicyRequest/getAllPartnerPolicyRequest
outputTemplate: pms/GetAllPartnerPolicyRequest/getAllPartnerPolicyRequestResult
input: '{
}'
output: ' {
}'
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
13 changes: 13 additions & 0 deletions api-test/src/main/resources/pms/GetCountOfFtm/GetCountOfFtm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
GetCountOfFtm:
Pms_GetCountOfFtm_All_Valid_Smoke:
endPoint: /v1/partnermanager/ftpchipdetail/search/v2
description: Fetching all active FTM
role: partnerrevamp
checkErrorsOnlyInResponse: true
restMethod: get
inputTemplate: pms/GetCountOfFtm/getCountOfFtm
outputTemplate: pms/GetCountOfFtm/getCountOfFtmResult
input: '{
}'
output: ' {
}'
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
GetDetailsOfPartner:
Pms_GetDetailsOfPartner_All_Valid_Smoke:
endPoint: /v1/partnermanager/partners/{partnerId}/v2
description: Fetching all the details of the Partner Id
role: partnerrevamp
checkErrorsOnlyInResponse: true
restMethod: get
inputTemplate: pms/GetDetailsOfPartner/getDetailsOfPartner
outputTemplate: pms/GetDetailsOfPartner/getDetailsOfPartnerResult
input: '{
"partnerId": "111999"
}'
output: ' {
}'
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"partnerId":"{{partnerId}}"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
GetListOfAllDevice:
Pms_GetListOfAllDevice_All_Valid_Smoke:
endPoint: /v1/partnermanager/devicedetail/search/v2
description: Fetching all the active SBI
role: partnerrevamp
checkErrorsOnlyInResponse: true
restMethod: get
inputTemplate: pms/GetListOfAllDevice/getListOfAllDevice
outputTemplate: pms/GetListOfAllDevice/getListOfAllDeviceResult
input: '{
}'
output: ' {
}'
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
GetListOfAllSBI:
Pms_GetListOfAllSBI_All_Valid_Smoke:
endPoint: /v1/partnermanager/securebiometricinterface/search/v2
description: Fetching all the active SBI
role: partnerrevamp
checkErrorsOnlyInResponse: true
restMethod: get
inputTemplate: pms/GetListOfAllSBI/getListOfAllSBI
outputTemplate: pms/GetListOfAllSBI/getListOfAllSBIResult
input: '{
}'
output: ' {
}'
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Loading

0 comments on commit d28381e

Please sign in to comment.