Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@ public class PreRegUtil extends AdminTestUtil {
// Fault-injection cases use a trigger named per run, so parallel runs on one environment do not interfere;
// they are reported as Ignored when the DB user cannot create triggers.
public static final String PII_FAULT_INJECTION_MARKER = "_PiiFaultInjection_";
// Cases for features planned for a future release; the name part before the marker selects the feature.
public static final String PII_FUTURE_SCOPE_MARKER = "_FutureScope_";
private static final Map<String, String> FUTURE_SCOPE_FEATURES = Map.of(
"_PiiCollision_", "Hash-collision handling for user identifiers (alternate flow AF5)",
"_PiiDocOwner_", "Ownership validation on document reference number update");
private static final String DEFAULT_ACTUATOR_ENDPOINT = "/preregistration/v1/actuator/env";
private static final long PARALLEL_REQUEST_TIMEOUT_SECONDS = 120;
public static final String PII_RUN_ID_KEYWORD = "$PIIRUNID$";
Expand Down Expand Up @@ -150,6 +155,14 @@ public static String isTestCaseValidForExecution(TestCaseDTO testCaseDTO) {
+ GlobalConstants.FEATURE_NOT_SUPPORTED
+ " as piiBackwardCompatibility=true (mosip.prereg.pii.backward.compatibility). Hence skipping the testcase");
}
// Features planned for a future release. Reported as Ignored until they are delivered.
if (testCaseName.contains(PII_FUTURE_SCOPE_MARKER)) {
String feature = FUTURE_SCOPE_FEATURES.entrySet().stream()
.filter(entry -> testCaseName.contains(entry.getKey())).map(Map.Entry::getValue).findFirst()
.orElse("This PII feature");
throw new SkipException(feature + " is planned for a future release; " + GlobalConstants.FEATURE_NOT_SUPPORTED
+ " in the current build. Hence skipping the testcase");
}
if (testCaseName.contains(PII_FAULT_INJECTION_MARKER) && !testCaseName.contains("_Install")
&& !testCaseName.endsWith("_Teardown")) {
checkFaultInjectionActive(!testCaseName.endsWith("_NothingWritten"));
Expand Down
213 changes: 209 additions & 4 deletions api-test/src/main/resources/config/testCaseInterDependency.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,8 @@
],
"TC_prereg_GetAppointmentDetails_02": [
"TC_Prereg_CreatePrereg_08",
"TC_prereg_BookAppointment_03"
"TC_prereg_BookAppointment_03",
"TC_prereg_CancelAppointment_01"
],
"TC_prereg_BookAppointment_22": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_GetAllApplicationsWithapplicationId_02": ["TC_Prereg_CreatePrereg_01"],
Expand Down Expand Up @@ -130,7 +131,10 @@
"TC_prereg_BookAppointment_24": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_BookAppointment_23": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_GetAllApplicationsWithapplicationId_01": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_GetPreRegInfoByPrid_01": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_GetPreRegInfoByPrid_01": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_UpdatePreregistration_01"
],
"TC_prereg_BookAppointment_30": ["TC_Prereg_CreatePrereg_27"],
"TC_prereg_UpdatePreRegStatus_05": ["TC_Prereg_CreatePrereg_07"],
"TC_prereg_UpdatePreRegStatus_06": ["TC_Prereg_CreatePrereg_06"],
Expand Down Expand Up @@ -195,7 +199,10 @@
"TC_Prereg_CreatePrereg_08",
"TC_prereg_BookAppointment_03"
],
"TC_prereg_FetchApplicationByPrid_01": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_FetchApplicationByPrid_01": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_UpdatePreregistration_01"
],
"TC_prereg_GetAllPreRegDemographicApplications_01": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_UpdateDocRefID_06": ["TC_Prereg_CreatePrereg_03"],
"TC_prereg_GetSpecificDocumentforaPRID_03": ["TC_Prereg_CreatePrereg_01"],
Expand Down Expand Up @@ -230,5 +237,203 @@
],
"TC_prereg_UpdateDocRefID_05": ["TC_Prereg_CreatePrereg_03"],
"TC_prereg_GetSpecificDocumentforaPRID_02": ["TC_prereg_UploadDocument_01"],
"TC_prereg_SendNotifications_04": ["TC_prereg_GetAppointmentDetails_01"]
"TC_prereg_SendNotifications_04": ["TC_prereg_GetAppointmentDetails_01"],
"TC_prereg_PiiCrossUserAccess_01": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_PiiCrossUserAccess_02": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_PiiCrossUserAccess_03": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_BookAppointment_01"
],
"TC_prereg_PiiCrossUserActions_01": [
"TC_Prereg_CreatePrereg_01",
"TC_Prereg_CreatePrereg_05"
],
"TC_prereg_PiiCrossUserActions_02": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_UploadDocument_01"
],
"TC_prereg_PiiCrossUserActions_03": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_UploadDocument_01"
],
"TC_prereg_PiiCrossUserActions_04": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_UploadDocument_01"
],
"TC_prereg_PiiCrossUserActions_05": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_BookAppointment_01"
],
"TC_prereg_PiiCrossUserActions_06": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_BookAppointment_01"
],
"TC_prereg_PiiCrossUserActions_07": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_BookAppointment_01"
],
"TC_prereg_PiiCrossUserActions_08": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_PiiCrossUserActions_10": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_PiiCrossUserDelete_01": ["TC_Prereg_CreatePrereg_05"],
"TC_prereg_PiiCrossUserDelete_02": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_BookAppointment_01"
],
"TC_prereg_PiiDbValidation_01": ["TC_prereg_PiiResponseOwnership_05"],
"TC_prereg_PiiDbValidation_02": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_PiiDbValidation_03": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_UpdatePreregistration_01"
],
"TC_prereg_PiiDbValidation_04": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_UploadDocument_03"
],
"TC_prereg_PiiDbValidation_05": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_BookAppointment_01"
],
"TC_prereg_PiiDbValidation_07": [
"TC_Prereg_CreatePrereg_01",
"TC_Prereg_CreatePrereg_05"
],
"TC_prereg_PiiDbValidation_13": ["TC_prereg_PiiCrossUserAccess_01"],
"TC_prereg_PiiDbValidation_14": [
"TC_Prereg_CreatePrereg_01",
"TC_prereg_PiiCrossUserActions_05",
"TC_prereg_PiiCrossUserActions_07",
"TC_prereg_PiiCrossUserActions_08"
],
"TC_prereg_PiiDbValidation_18": [
"TC_prereg_BookAppointment_01",
"TC_prereg_UploadDocument_01"
],
"TC_prereg_PiiDocOwnership_01": ["TC_prereg_PiiScenario_22"],
"TC_prereg_PiiDocOwnership_02": [
"TC_prereg_PiiDocOwnership_01",
"TC_prereg_PiiScenario_22"
],
"TC_prereg_PiiDocOwnership_03": [
"TC_prereg_PiiDocOwnership_01",
"TC_prereg_PiiScenario_22"
],
"TC_prereg_PiiDocOwnership_04": [
"TC_prereg_PiiDocOwnership_01",
"TC_prereg_PiiScenario_22"
],
"TC_prereg_PiiDocOwnership_05": [
"TC_prereg_PiiDocOwnership_01",
"TC_prereg_PiiDocOwnership_02",
"TC_prereg_PiiDocOwnership_04"
],
"TC_prereg_PiiLegacy_02": ["TC_prereg_PiiLegacy_01"],
"TC_prereg_PiiLegacy_03": ["TC_prereg_PiiLegacy_01"],
"TC_prereg_PiiLegacy_04": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_02",
"TC_prereg_PiiLegacy_03"
],
"TC_prereg_PiiLegacy_05": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_02",
"TC_prereg_PiiLegacy_03"
],
"TC_prereg_PiiLegacy_06": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_02",
"TC_prereg_PiiLegacy_03"
],
"TC_prereg_PiiLegacy_07": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_02",
"TC_prereg_PiiLegacy_03"
],
"TC_prereg_PiiLegacy_08": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_02",
"TC_prereg_PiiLegacy_03"
],
"TC_prereg_PiiLegacy_09": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_02",
"TC_prereg_PiiLegacy_03"
],
"TC_prereg_PiiLegacy_10": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_08"
],
"TC_prereg_PiiLegacy_11": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_08"
],
"TC_prereg_PiiLegacy_12": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_09"
],
"TC_prereg_PiiLegacy_13": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_02",
"TC_prereg_PiiLegacy_03"
],
"TC_prereg_PiiLegacy_14": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_02",
"TC_prereg_PiiLegacy_03"
],
"TC_prereg_PiiLegacy_15": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_02",
"TC_prereg_PiiLegacy_03"
],
"TC_prereg_PiiNotification_02": ["TC_prereg_PiiNotification_01"],
"TC_prereg_PiiNotification_03": [
"TC_prereg_PiiNotification_01",
"TC_prereg_PiiNotification_02"
],
"TC_prereg_PiiResponseOwnership_01": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_PiiResponseOwnership_02": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_PiiResponseOwnership_05": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_PiiResponseOwnership_06": ["TC_Prereg_CreatePrereg_01"],
"TC_prereg_PiiScenario_03": ["TC_prereg_PiiScenario_01"],
"TC_prereg_PiiScenario_04": ["TC_prereg_PiiScenario_01"],
"TC_prereg_PiiScenario_07": ["TC_prereg_PiiScenario_06"],
"TC_prereg_PiiScenario_08": [
"TC_prereg_PiiScenario_01",
"TC_prereg_PiiScenario_03",
"TC_prereg_PiiScenario_04"
],
"TC_prereg_PiiScenario_09": ["TC_prereg_PiiScenario_02"],
"TC_prereg_PiiScenario_11": ["TC_prereg_PiiScenario_05"],
"TC_prereg_PiiScenario_12": ["TC_prereg_PiiScenario_07"],
"TC_prereg_PiiScenario_13": ["TC_prereg_PiiScenario_07"],
"TC_prereg_PiiScenario_14": ["TC_prereg_PiiScenario_08"],
"TC_prereg_PiiScenario_15": [
"TC_prereg_PiiScenario_02",
"TC_prereg_PiiScenario_09"
],
"TC_prereg_PiiScenario_16": ["TC_prereg_SendOtp_01"],
"TC_prereg_PiiScenario_18": ["TC_prereg_SendOtp_01"],
"TC_prereg_PiiScenario_19": ["TC_prereg_PiiScenario_11"],
"TC_prereg_PiiScenario_20": ["TC_prereg_PiiScenario_12"],
"TC_prereg_PiiScenario_23": ["TC_prereg_PiiScenario_19"],
"TC_prereg_PiiScenario_24": [
"TC_prereg_PiiScenario_01",
"TC_prereg_PiiScenario_14"
],
"TC_prereg_PiiScenario_25": [
"TC_prereg_PiiScenario_01",
"TC_prereg_PiiScenario_14"
],
"TC_prereg_PiiScenario_26": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_02"
],
"TC_prereg_PiiScenario_27": [
"TC_prereg_PiiLegacy_01",
"TC_prereg_PiiLegacy_03"
],
"TC_prereg_SendNotifications_05": [
"TC_Prereg_CreatePrereg_04",
"TC_prereg_GetAppointmentDetails_01"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -115,19 +115,6 @@ PiiDbValidation:
}'
output: '{
"unique_hash_index_present": "true"
}'
Prereg_PiiDbValidation_Applications_CrByIndex:
endPoint: db:mosip_prereg
uniqueIdentifier: TC_prereg_PiiDbValidation_09
description: Validate that applications.cr_by is indexed
role: batch
restMethod: get
input: '{
"db": "prereg",
"query": "SELECT (count(*) > 0) AS cr_by_index_present FROM pg_indexes WHERE schemaname = ''prereg'' AND tablename = ''applications'' AND indexdef ILIKE ''%(cr_by%''"
}'
output: '{
"cr_by_index_present": "true"
}'
Prereg_PiiDbValidation_Demographic_CrByIndex:
endPoint: db:mosip_prereg
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,17 +68,16 @@ PiiScenarioRequests:
}
]
}'
Prereg_PiiLegacyList_PiiCompatOn_NoPlaintext:
Prereg_PiiLegacyList_PiiCompatOn_LegacyListed:
endPoint: /preregistration/v1/applications
uniqueIdentifier: TC_prereg_PiiLegacy_13
description: Validate that the application list shows the legacy application without the email
description: Validate that the application list includes the legacy application for its owner
role: batch
restMethod: get
additionalDependencies: TC_prereg_PiiLegacy_02,TC_prereg_PiiLegacy_03
input: '{}'
output: '{
"_mustContain": ["$ID:CreatePrereg_PiiLegacy_Smoke_sid_preRegistrationId$"],
"_mustNotContain": ["$PREREGUSER$"]
"_mustContain": ["$ID:CreatePrereg_PiiLegacy_Smoke_sid_preRegistrationId$"]
}'
Prereg_PiiLegacyList_PiiCompatOff_LegacyExcluded:
endPoint: /preregistration/v1/applications
Expand Down Expand Up @@ -201,7 +200,7 @@ PiiScenarioRequests:
]
}
}'
Prereg_PiiCollision_CreatePrereg_Neg:
Prereg_PiiCollision_FutureScope_CreatePrereg_Neg:
endPoint: /preregistration/v1/applications/prereg
uniqueIdentifier: TC_prereg_PiiScenario_11
description: Validate that a user whose hash matches a different identifier is refused with PRG_CORE_REQ_024 (AF5)
Expand Down Expand Up @@ -257,25 +256,21 @@ PiiScenarioRequests:
}
]
}'
Prereg_PiiFaultInjection_ListApplications_Neg:
Prereg_PiiFaultInjection_ListApplications_Empty:
endPoint: /preregistration/v1/applications
uniqueIdentifier: TC_prereg_PiiScenario_13
description: Validate that listing fails with PRG_CORE_REQ_024 when the user id cannot be resolved (AF4)
description: Validate that listing returns an empty application list when the user id cannot be resolved (AF4)
role: userDefinedCookie
restMethod: get
additionalDependencies: TC_prereg_PiiScenario_07
outputTemplate: preReg/error
input: '{
"cookie": "$PREREGFAULTUSERTOKEN$"
}'
output: '{
"errors": [
{
"errorCode": "PRG_CORE_REQ_024"
}
]
"id": "mosip.preregistration.applications.all",
"_mustNotContain": ["applicationId", "errorCode"]
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
}'
Prereg_PiiDocOwner_UpdateDocRefId_OtherUser_Neg:
Prereg_PiiDocOwner_FutureScope_UpdateDocRefId_OtherUser_Neg:
endPoint: /preregistration/v1/documents/document/{documentId}?preRegistrationId={preRegistrationId}&refNumber={refNumber}
uniqueIdentifier: TC_prereg_PiiDocOwnership_02
description: Validate that another user cannot change the owner's document reference number
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ PiiScenarioSetup:
output: '{
"updated_rows": "1"
}'
Prereg_PiiCollision_PlantForeignHashRow:
Prereg_PiiCollision_FutureScope_PlantForeignHashRow:
endPoint: db:mosip_prereg
uniqueIdentifier: TC_prereg_PiiScenario_05
description: Validate that a user_details row with a colliding hash and a different identifier is planted (AF5)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ PiiScenarioVerify:
"plaintext_phone_audit_rows": "0",
"uuid_audit_present": "true"
}'
Prereg_PiiCollision_PlantedUuid_NotReused:
Prereg_PiiCollision_FutureScope_PlantedUuid_NotReused:
endPoint: db:mosip_prereg
uniqueIdentifier: TC_prereg_PiiScenario_19
description: Validate that the planted UUID is not reused for any record (AF5)
Expand Down Expand Up @@ -137,7 +137,7 @@ PiiScenarioVerify:
"user_details_rows": "0",
"plaintext_owner_rows": "0"
}'
Prereg_PiiDocOwner_DocumentUntouched:
Prereg_PiiDocOwner_FutureScope_DocumentUntouched:
endPoint: db:mosip_prereg
uniqueIdentifier: TC_prereg_PiiDocOwnership_05
description: Validate that the owner's document is unchanged after the rejected cross-user calls
Expand All @@ -153,7 +153,7 @@ PiiScenarioVerify:
"ref_number_unchanged": "true",
"owner_is_run_user": "true"
}'
Prereg_PiiCleanup_CollisionRow:
Prereg_PiiCollision_FutureScope_CleanupCollisionRow:
endPoint: db:mosip_prereg
uniqueIdentifier: TC_prereg_PiiScenario_23
description: Validate that the planted collision row is removed
Expand Down
6 changes: 5 additions & 1 deletion api-test/src/main/resources/testCaseSkippedList.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
##### JIRA number;testcase
#MOSIP-12456------Mimoto_AddIdentity_Binding_smoke_Pos
#MOSIP-12456------Mimoto_AddIdentity_Binding_smoke_Pos
mosip/pre-registration#1079------Prereg_PiiCrossUserActions_ListDocuments_OtherUser_Neg
MOSIP-41819------Prereg_GetAppointmentDetails_empty_space_preRegistrationId
MOSIP-41819------Prereg_GetBookingsForRegCenter_with_InValid_regcenter
MOSIP-43952------Prereg_BookAppointment_On_holiday
Loading