davinci_pas_test_kit 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/presets/pas_client_v201_run_against_pas_server.json +39 -0
- data/config/presets/pas_client_v221_run_against_pas_server.json +85 -0
- data/config/presets/pas_ri.json +2 -2
- data/config/presets/pas_server_v201_run_against_pas_client.json.erb +76 -0
- data/config/presets/pas_server_v221_run_against_pas_client.json.erb +104 -0
- data/lib/davinci_pas_test_kit/client/abstract_approval_submit_test.rb +75 -0
- data/lib/davinci_pas_test_kit/client/abstract_denial_submit_test.rb +74 -0
- data/lib/davinci_pas_test_kit/client/abstract_gather_must_support_test.rb +160 -0
- data/lib/davinci_pas_test_kit/client/abstract_modification_submit_test.rb +78 -0
- data/lib/davinci_pas_test_kit/client/abstract_response_attest.rb +64 -0
- data/lib/davinci_pas_test_kit/client/abstract_subscription_create_test.rb +57 -0
- data/lib/davinci_pas_test_kit/{urls.rb → client/client_urls.rb} +7 -23
- data/lib/davinci_pas_test_kit/client/endpoints/claim_endpoint.rb +303 -0
- data/lib/davinci_pas_test_kit/{endpoints → client/endpoints}/subscription_create_endpoint.rb +1 -1
- data/lib/davinci_pas_test_kit/{endpoints → client/endpoints}/subscription_status_endpoint.rb +1 -1
- data/lib/davinci_pas_test_kit/{endpoints → client/endpoints}/token_endpoint.rb +1 -2
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/client_submit_request_beneficiary_must_support_test.rb → client/generated/v2.0.1/beneficiary/client_inquire_request_must_support_beneficiary_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +59 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/client_inquire_request_beneficiary_must_support_test.rb → client/generated/v2.0.1/beneficiary/client_submit_request_must_support_beneficiary_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +59 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim_inquiry/client_inquire_request_claim_inquiry_must_support_test.rb → client/generated/v2.0.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb} +19 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim_update/client_submit_request_claim_update_must_support_test.rb → client/generated/v2.0.1/claim_update/client_submit_request_must_support_claim_update_test.rb} +19 -35
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +57 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +59 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/communication_request/client_submit_response_must_support_communication_request_test.rb +42 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_inquire_request_must_support_coverage_test.rb +39 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/coverage/client_submit_request_must_support_coverage_test.rb +39 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/encounter/client_submit_request_encounter_must_support_test.rb → client/generated/v2.0.1/encounter/client_submit_request_must_support_encounter_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_request_must_support_insurer_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_inquire_response_must_support_insurer_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_request_must_support_insurer_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/insurer/client_submit_response_must_support_insurer_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_must_support_group.rb +48 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_inquire_response_must_support_group.rb +79 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_must_support_group.rb +58 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_client_submit_response_must_support_group.rb +84 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_inquiry_request_bundle/client_inquire_request_must_support_pas_inquiry_request_bundle_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_inquiry_response_bundle/client_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +36 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_request_bundle/client_submit_request_must_support_pas_request_bundle_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/pas_response_bundle/client_submit_response_must_support_pas_response_bundle_test.rb +36 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_request_must_support_practitioner_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_request_must_support_practitioner_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner/client_submit_response_must_support_practitioner_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_request_must_support_practitioner_role_test.rb +33 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +33 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_request_must_support_practitioner_role_test.rb +33 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +33 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_request_must_support_requestor_test.rb +47 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_inquire_response_must_support_requestor_test.rb +47 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_request_must_support_requestor_test.rb +47 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/requestor/client_submit_response_must_support_requestor_test.rb +47 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/subscriber/client_inquire_request_subscriber_must_support_test.rb → client/generated/v2.0.1/subscriber/client_inquire_request_must_support_subscriber_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/subscriber/client_submit_request_subscriber_must_support_test.rb → client/generated/v2.0.1/subscriber/client_submit_request_must_support_subscriber_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_inquire_response_must_support_task_test.rb +45 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.0.1/task/client_submit_response_must_support_task_test.rb +45 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_inquire_response_must_support_beneficiary_test.rb +53 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/beneficiary/client_submit_response_must_support_beneficiary_test.rb +53 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_inquiry/client_inquire_request_must_support_claim_inquiry_test.rb +123 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claim_update/client_submit_request_must_support_claim_update_test.rb +143 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claiminquiryresponse/client_inquire_response_must_support_claiminquiryresponse_test.rb +102 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/claimresponse/client_submit_response_must_support_claimresponse_test.rb +103 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/communication_request/client_submit_response_must_support_communication_request_test.rb +42 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_inquire_response_must_support_insurer_test.rb +47 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/insurer/client_submit_response_must_support_insurer_test.rb +47 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_must_support_group.rb +60 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_inquire_response_must_support_group.rb +79 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_must_support_group.rb +89 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_client_submit_response_must_support_group.rb +84 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_inquiry_response_bundle/client_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +38 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/pas_response_bundle/client_submit_response_must_support_pas_response_bundle_test.rb +39 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_inquire_response_must_support_practitioner_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner/client_submit_response_must_support_practitioner_test.rb +44 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_inquire_response_must_support_practitioner_role_test.rb +40 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/practitioner_role/client_submit_response_must_support_practitioner_role_test.rb +40 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_inquire_response_must_support_requestor_test.rb +50 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/requestor/client_submit_response_must_support_requestor_test.rb +50 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_inquire_response_must_support_task_test.rb +55 -0
- data/lib/davinci_pas_test_kit/client/generated/v2.2.1/task/client_submit_response_must_support_task_test.rb +55 -0
- data/lib/davinci_pas_test_kit/{jobs → client/jobs}/send_pas_subscription_notification.rb +12 -7
- data/lib/davinci_pas_test_kit/{jobs → client/jobs}/send_subscription_handshake.rb +1 -1
- data/lib/davinci_pas_test_kit/client/metadata/mock_pas_server.rb +26 -0
- data/lib/davinci_pas_test_kit/client/metadata/pas_server_capability_statement.json +60 -0
- data/lib/davinci_pas_test_kit/client/pas_client_options.rb +23 -0
- data/lib/davinci_pas_test_kit/client/pas_client_subscription_pas_conformance_test.rb +33 -0
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_other_display_test.rb +45 -0
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_smart_display_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/registration/abstract_configuration_udap_display_test.rb +37 -0
- data/lib/davinci_pas_test_kit/client/registration/abstract_other_auth_attest_test.rb +39 -0
- data/lib/davinci_pas_test_kit/{response_generator.rb → client/response_generator.rb} +198 -62
- data/lib/davinci_pas_test_kit/{session_identification.rb → client/session_identification.rb} +1 -2
- data/lib/davinci_pas_test_kit/client/user_input_response.rb +64 -0
- data/lib/davinci_pas_test_kit/{client_suite.rb → client/v2.0.1/client_suite.rb} +33 -16
- data/lib/davinci_pas_test_kit/client/v2.0.1/must_support/pas_client_gather_must_support_test.rb +12 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/pas_client_must_support_requirement_test.rb → client/v2.0.1/must_support/pas_client_must_support_request_profiles_test.rb} +12 -46
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_approval_group.rb +5 -5
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_auth_smart_group.rb +1 -2
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_auth_udap_group.rb +1 -2
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_denial_group.rb +7 -6
- data/lib/davinci_pas_test_kit/client/v2.0.1/pas_client_must_support_group.rb +96 -0
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_pended_group.rb +13 -10
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_registration_group.rb +5 -6
- data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_subscription_setup_group.rb +6 -3
- data/lib/davinci_pas_test_kit/client/v2.0.1/registration/configuration_other_display_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/registration/configuration_smart_display_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/registration/configuration_udap_display_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/registration/other_auth_attest_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/subscription/pas_client_subscription_create_test.rb +15 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/urls.rb +15 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_approval_submit_test.rb +15 -0
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_denial_submit_test.rb +15 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_inquire_request_bundle_validation_test.rb +1 -3
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_inquire_response_bundle_validation_test.rb +18 -6
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_pended_submit_test.rb +12 -8
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_request_bundle_validation_test.rb +1 -3
- data/lib/davinci_pas_test_kit/client/v2.0.1/workflows/pas_client_response_attest.rb +12 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/client_tests → client/v2.0.1/workflows}/pas_client_response_bundle_validation_test.rb +10 -5
- data/lib/davinci_pas_test_kit/client/v2.2.1/client_suite.rb +240 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_failure_submit_test.rb +76 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_operation_outcome_validation_test.rb +38 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_response_validation_test.rb +55 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/error_handling/pas_client_processing_error_submit_test.rb +67 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/must_support_with_attestation_option.rb +214 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/pas_client_gather_must_support_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_approval_group.rb +40 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_smart_group.rb +31 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_auth_udap_group.rb +30 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_claim_updates_group.rb +112 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_denial_group.rb +47 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_error_handling_group.rb +20 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_modification_group.rb +52 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_must_support_group.rb +96 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_operation_failure_group.rb +45 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_pended_group.rb +125 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_processing_error_group.rb +44 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_registration_group.rb +65 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_subscription_setup_group.rb +31 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/pas_client_workflows_group.rb +25 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/registration/configuration_other_display_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/registration/configuration_smart_display_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/registration/configuration_udap_display_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/registration/other_auth_attest_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/subscription/pas_client_subscription_create_test.rb +14 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/urls.rb +15 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_approval_submit_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_cancel_request_test.rb +33 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_cancelled_entries_test.rb +50 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_cancelled_items_certtype_test.rb +47 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_changed_entries_test.rb +100 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_entries_preserved_test.rb +51 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_grandparent_excluded_test.rb +52 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_referenced_claim_test.rb +46 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_referenced_resources_test.rb +43 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_submit_tests.rb +238 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_claim_update_validation_utils.rb +183 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_denial_submit_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_request_bundle_validation_test.rb +55 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_inquire_response_bundle_validation_test.rb +78 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_modification_submit_test.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_modification_verification_test.rb +101 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_pended_submit_test.rb +148 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_request_bundle_validation_test.rb +56 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_response_attest.rb +12 -0
- data/lib/davinci_pas_test_kit/client/v2.2.1/workflows/pas_client_response_bundle_validation_test.rb +84 -0
- data/lib/davinci_pas_test_kit/cross_suite/base_urls.rb +27 -0
- data/lib/davinci_pas_test_kit/cross_suite/fhirpath_utils.rb +55 -0
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/beneficiary/metadata.yml +19 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claim_inquiry/metadata.yml +59 -22
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claim_update/metadata.yml +60 -22
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claiminquiryresponse/metadata.yml +17 -10
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/claimresponse/metadata.yml +17 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/communication_request/metadata.yml +7 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/coverage/metadata.yml +8 -12
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/device_request/metadata.yml +1 -6
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/encounter/metadata.yml +6 -5
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/insurer/metadata.yml +16 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/medication_request/metadata.yml +1 -6
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/metadata.yml +276 -135
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/nutrition_order/metadata.yml +1 -6
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_inquiry_request_bundle/metadata.yml +5 -7
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_inquiry_response_bundle/metadata.yml +5 -5
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_request_bundle/metadata.yml +5 -7
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/pas_response_bundle/metadata.yml +5 -5
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/practitioner/metadata.yml +16 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/practitioner_role/metadata.yml +16 -19
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/requestor/metadata.yml +16 -13
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/service_request/metadata.yml +2 -6
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/subscriber/metadata.yml +11 -9
- data/lib/davinci_pas_test_kit/{generated → cross_suite/generated}/v2.0.1/task/metadata.yml +8 -5
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/beneficiary/metadata.yml +150 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim → cross_suite/generated/v2.2.1/claim_inquiry}/metadata.yml +199 -192
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claim_update/metadata.yml +733 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claiminquiryresponse/metadata.yml +456 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/claimresponse/metadata.yml +461 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/communication_request/metadata.yml +120 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/coverage/metadata.yml +163 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/device_request_metadata.yml → cross_suite/generated/v2.2.1/device_request/metadata.yml} +32 -33
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/encounter/metadata.yml +237 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/insurer/metadata.yml +111 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/medication_request_metadata.yml → cross_suite/generated/v2.2.1/medication_request/metadata.yml} +59 -26
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/metadata.yml +6544 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/nutrition_order_metadata.yml → cross_suite/generated/v2.2.1/nutrition_order/metadata.yml} +13 -14
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_inquiry_request_bundle/metadata.yml +74 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_inquiry_response_bundle/metadata.yml +70 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_request_bundle/metadata.yml +74 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/pas_response_bundle/metadata.yml +72 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/practitioner/metadata.yml +101 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/practitioner_role/metadata.yml +101 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/requestor/metadata.yml +114 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/service_request_metadata.yml → cross_suite/generated/v2.2.1/service_request/metadata.yml} +39 -45
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/subscriber/metadata.yml +136 -0
- data/lib/davinci_pas_test_kit/cross_suite/generated/v2.2.1/task/metadata.yml +237 -0
- data/lib/davinci_pas_test_kit/cross_suite/must_support/must_support_data_gathering.rb +111 -0
- data/lib/davinci_pas_test_kit/cross_suite/must_support/must_support_request_type_test.rb +75 -0
- data/lib/davinci_pas_test_kit/cross_suite/must_support/must_support_test.rb +67 -0
- data/lib/davinci_pas_test_kit/{pas_bundle_validation.rb → cross_suite/pas_bundle_validation.rb} +383 -56
- data/lib/davinci_pas_test_kit/cross_suite/pas_constants.rb +31 -0
- data/lib/davinci_pas_test_kit/cross_suite/pas_notification_verification.rb +120 -0
- data/lib/davinci_pas_test_kit/cross_suite/pas_subscription_verification.rb +72 -0
- data/lib/davinci_pas_test_kit/cross_suite/response_selection_utils.rb +88 -0
- data/lib/davinci_pas_test_kit/cross_suite/tags.rb +35 -0
- data/lib/davinci_pas_test_kit/cross_suite/validation_test.rb +25 -0
- data/lib/davinci_pas_test_kit/{validator_suppressions.rb → cross_suite/validator_suppressions.rb} +23 -1
- data/lib/davinci_pas_test_kit/ext/inferno_core/runnable.rb +22 -0
- data/lib/davinci_pas_test_kit/generator/client_must_support_group_generator.rb +230 -0
- data/lib/davinci_pas_test_kit/generator/descriptions.rb +95 -0
- data/lib/davinci_pas_test_kit/generator/ig_metadata.rb +45 -38
- data/lib/davinci_pas_test_kit/generator/ig_metadata_extractor.rb +3 -5
- data/lib/davinci_pas_test_kit/generator/{must_support_check_profiles.rb → must_support_target_profiles.rb} +12 -12
- data/lib/davinci_pas_test_kit/generator/must_support_test_generator.rb +63 -83
- data/lib/davinci_pas_test_kit/generator/pas_must_support_metadata_extractor.rb +129 -0
- data/lib/davinci_pas_test_kit/generator/profile_metadata.rb +86 -0
- data/lib/davinci_pas_test_kit/generator/{group_metadata_extractor.rb → profile_metadata_extractor.rb} +11 -78
- data/lib/davinci_pas_test_kit/generator/server_must_support_group_generator.rb +166 -0
- data/lib/davinci_pas_test_kit/generator/{suite_generator.rb → server_suite_generator.rb} +32 -5
- data/lib/davinci_pas_test_kit/generator/templates/client_must_support_group.rb.erb +80 -0
- data/lib/davinci_pas_test_kit/generator/templates/client_must_support_response_group.rb.erb +43 -0
- data/lib/davinci_pas_test_kit/generator/templates/must_support.rb.erb +14 -35
- data/lib/davinci_pas_test_kit/generator/templates/server_must_support_group.rb.erb +121 -0
- data/lib/davinci_pas_test_kit/generator/templates/{suite.rb.erb → server_suite.rb.erb} +19 -23
- data/lib/davinci_pas_test_kit/generator/templates/use_case_group.rb.erb +181 -0
- data/lib/davinci_pas_test_kit/generator/use_case_group_generator.rb +227 -0
- data/lib/davinci_pas_test_kit/generator.rb +46 -26
- data/lib/davinci_pas_test_kit/igs/davinci_pas_2.2.1.tgz +0 -0
- data/lib/davinci_pas_test_kit/metadata.rb +21 -55
- data/lib/davinci_pas_test_kit/parameters_helper.rb +18 -0
- data/lib/davinci_pas_test_kit/pas_notification_conformance_test.rb +40 -0
- data/lib/davinci_pas_test_kit/requirements/davinci_pas_test_kit_requirements.csv +121 -0
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v201_requirements_coverage.csv +22 -22
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_client_suite_v221_requirements_coverage.csv +66 -0
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_server_suite_v201_requirements_coverage.csv +42 -42
- data/lib/davinci_pas_test_kit/requirements/generated/davinci_pas_server_suite_v221_requirements_coverage.csv +212 -0
- data/lib/davinci_pas_test_kit/requirements/hl7.fhir.us.davinci-pas_2.2.1_requirements.xlsx +0 -0
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/notification/pas_subscription_notification_test.rb → server/abstract_pas_subscription_notification_wait_test.rb} +13 -20
- data/lib/davinci_pas_test_kit/server/claim_inquire_operation_test.rb +31 -0
- data/lib/davinci_pas_test_kit/server/claim_operation_logic.rb +67 -0
- data/lib/davinci_pas_test_kit/server/claim_submit_operation_test.rb +32 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/server_submit_request_beneficiary_must_support_test.rb → server/generated/v2.0.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/server_submit_response_beneficiary_must_support_test.rb → server/generated/v2.0.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb} +16 -36
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/server_inquire_request_beneficiary_must_support_test.rb → server/generated/v2.0.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/beneficiary/server_inquire_response_beneficiary_must_support_test.rb → server/generated/v2.0.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb} +16 -36
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim_inquiry/server_inquire_request_claim_inquiry_must_support_test.rb → server/generated/v2.0.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb} +19 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claim_update/server_submit_request_claim_update_must_support_test.rb → server/generated/v2.0.1/claim_update/server_submit_request_must_support_claim_update_test.rb} +19 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claiminquiryresponse/server_inquire_response_claiminquiryresponse_must_support_test.rb → server/generated/v2.0.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/claimresponse/server_submit_response_claimresponse_must_support_test.rb → server/generated/v2.0.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/communication_request/server_submit_response_must_support_communication_request_test.rb +43 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_inquire_request_must_support_coverage_test.rb +41 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/coverage/server_submit_request_must_support_coverage_test.rb +41 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/encounter/server_submit_request_encounter_must_support_test.rb → server/generated/v2.0.1/encounter/server_submit_request_must_support_encounter_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_request_must_support_insurer_test.rb +46 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_inquire_response_must_support_insurer_test.rb +45 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_request_must_support_insurer_test.rb +46 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/insurer/server_submit_response_must_support_insurer_test.rb +45 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_inquiry_request_bundle/server_inquire_request_must_support_pas_inquiry_request_bundle_test.rb +39 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_inquiry_response_bundle/server_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +37 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test.rb +39 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_response_bundle/server_submit_response_must_support_pas_response_bundle_test.rb +37 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_approval_use_case_group.rb +145 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_denial_use_case_group.rb +145 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_must_support_group.rb +442 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/pas_server_pended_use_case_group.rb +280 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +39 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +38 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_request_must_support_practitioner_test.rb +39 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner/server_submit_response_must_support_practitioner_test.rb +38 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +35 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +34 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +35 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +34 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/requestor/server_submit_request_requestor_must_support_test.rb → server/generated/v2.0.1/requestor/server_inquire_request_must_support_requestor_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_inquire_response_must_support_requestor_test.rb +48 -0
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/requestor/server_inquire_request_requestor_must_support_test.rb → server/generated/v2.0.1/requestor/server_submit_request_must_support_requestor_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/requestor/server_submit_response_must_support_requestor_test.rb +48 -0
- data/lib/davinci_pas_test_kit/{generated → server/generated}/v2.0.1/server_suite.rb +14 -20
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/subscriber/server_inquire_request_subscriber_must_support_test.rb → server/generated/v2.0.1/subscriber/server_inquire_request_must_support_subscriber_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/{generated/v2.0.1/subscriber/server_submit_request_subscriber_must_support_test.rb → server/generated/v2.0.1/subscriber/server_submit_request_must_support_subscriber_test.rb} +14 -35
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_inquire_response_must_support_task_test.rb +46 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.0.1/task/server_submit_response_must_support_task_test.rb +46 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_request_must_support_beneficiary_test.rb +55 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_inquire_response_must_support_beneficiary_test.rb +53 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_request_must_support_beneficiary_test.rb +55 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/beneficiary/server_submit_response_must_support_beneficiary_test.rb +53 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_inquiry/server_inquire_request_must_support_claim_inquiry_test.rb +125 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claim_update/server_submit_request_must_support_claim_update_test.rb +145 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claiminquiryresponse/server_inquire_response_must_support_claiminquiryresponse_test.rb +102 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/claimresponse/server_submit_response_must_support_claimresponse_test.rb +103 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/communication_request/server_submit_response_must_support_communication_request_test.rb +42 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_inquire_request_must_support_coverage_test.rb +52 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/coverage/server_submit_request_must_support_coverage_test.rb +52 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/encounter/server_submit_request_must_support_encounter_test.rb +58 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_request_must_support_insurer_test.rb +49 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_inquire_response_must_support_insurer_test.rb +47 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_request_must_support_insurer_test.rb +49 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/insurer/server_submit_response_must_support_insurer_test.rb +47 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_inquiry_request_bundle/server_inquire_request_must_support_pas_inquiry_request_bundle_test.rb +41 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_inquiry_response_bundle/server_inquire_response_must_support_pas_inquiry_response_bundle_test.rb +38 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_request_bundle/server_submit_request_must_support_pas_request_bundle_test.rb +41 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_response_bundle/server_submit_response_must_support_pas_response_bundle_test.rb +39 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_approval_use_case_group.rb +125 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_denial_use_case_group.rb +125 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_must_support_group.rb +403 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/pas_server_pended_use_case_group.rb +150 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_request_must_support_practitioner_test.rb +46 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_inquire_response_must_support_practitioner_test.rb +44 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_request_must_support_practitioner_test.rb +46 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner/server_submit_response_must_support_practitioner_test.rb +44 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_request_must_support_practitioner_role_test.rb +42 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_inquire_response_must_support_practitioner_role_test.rb +40 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_request_must_support_practitioner_role_test.rb +42 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/practitioner_role/server_submit_response_must_support_practitioner_role_test.rb +40 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_request_must_support_requestor_test.rb +52 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_inquire_response_must_support_requestor_test.rb +50 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_request_must_support_requestor_test.rb +52 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/requestor/server_submit_response_must_support_requestor_test.rb +50 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/server_suite.rb +148 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_inquire_request_must_support_subscriber_test.rb +54 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/subscriber/server_submit_request_must_support_subscriber_test.rb +54 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_inquire_response_must_support_task_test.rb +55 -0
- data/lib/davinci_pas_test_kit/server/generated/v2.2.1/task/server_submit_response_must_support_task_test.rb +55 -0
- data/lib/davinci_pas_test_kit/server/pas_claim_response_decision_test.rb +73 -0
- data/lib/davinci_pas_test_kit/server/server_request_bundle_validation_test.rb +64 -0
- data/lib/davinci_pas_test_kit/server/server_response_bundle_validation_test.rb +76 -0
- data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/error_tests/pas_inquiry_error_test.rb +2 -2
- data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/error_tests/pas_submission_error_test.rb +2 -2
- data/lib/davinci_pas_test_kit/{custom_groups/v2.0.1/must_support/pas_server_must_support_requirement_test.rb → server/v2.0.1/must_support/pas_server_must_support_request_profiles_test.rb} +12 -45
- data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/pas_error_group.rb +3 -3
- data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/pas_server_subscription_input_conformance.rb +5 -3
- data/lib/davinci_pas_test_kit/server/v2.0.1/pas_server_subscription_notification_wait_test.rb +12 -0
- data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/pas_server_subscription_setup.rb +5 -3
- data/lib/davinci_pas_test_kit/server/v2.0.1/server_urls.rb +13 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/claim_updates/server_claim_update_response_tests.rb +143 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/error_tests/nonconformant_pas_bundle.json +16 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/error_tests/pas_inquiry_error_test.rb +38 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/error_tests/pas_submission_error_test.rb +56 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/must_support/pas_server_must_support_request_profiles_test.rb +86 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_error_group.rb +20 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_claim_updates_group.rb +104 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_input_conformance.rb +48 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_notification_wait_test.rb +12 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/pas_server_subscription_setup.rb +42 -0
- data/lib/davinci_pas_test_kit/server/v2.2.1/server_urls.rb +13 -0
- data/lib/davinci_pas_test_kit/version.rb +2 -2
- data/lib/davinci_pas_test_kit.rb +5 -2
- metadata +386 -190
- data/config/presets/pas_server_subscription_creation_against_pas_client.json +0 -32
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/claim_response_decision/pas_claim_response_decision_test.rb +0 -43
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_registration/configuration_other_display_test.rb +0 -46
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_registration/configuration_smart_display_test.rb +0 -37
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_registration/configuration_udap_display_test.rb +0 -37
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_registration/other_auth_attest_test.rb +0 -36
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_approval_submit_test.rb +0 -80
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_denial_submit_test.rb +0 -79
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_inquire_must_support_test.rb +0 -63
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_response_attest.rb +0 -52
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_submit_must_support_test.rb +0 -72
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_subscription_create_test.rb +0 -62
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/client_tests/pas_client_subscription_pas_conformance_test.rb +0 -30
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_must_support_group.rb +0 -29
- data/lib/davinci_pas_test_kit/custom_groups/v2.0.1/pas_client_options.rb +0 -25
- data/lib/davinci_pas_test_kit/endpoints/claim_endpoint.rb +0 -157
- data/lib/davinci_pas_test_kit/fhir_resource_navigation.rb +0 -72
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim/claim_operation_test.rb +0 -67
- data/lib/davinci_pas_test_kit/generated/v2.0.1/claim_inquiry/claim_inquiry_operation_test.rb +0 -56
- data/lib/davinci_pas_test_kit/generated/v2.0.1/communication_request/server_submit_response_communication_request_must_support_test.rb +0 -63
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/client_inquire_request_coverage_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/client_submit_request_coverage_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/server_inquire_request_coverage_must_support_test.rb +0 -62
- data/lib/davinci_pas_test_kit/generated/v2.0.1/coverage/server_submit_request_coverage_must_support_test.rb +0 -62
- data/lib/davinci_pas_test_kit/generated/v2.0.1/device_request/client_submit_request_device_request_must_support_test.rb +0 -56
- data/lib/davinci_pas_test_kit/generated/v2.0.1/device_request/server_submit_request_device_request_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/client_inquire_request_insurer_must_support_test.rb +0 -65
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/client_submit_request_insurer_must_support_test.rb +0 -65
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_inquire_request_insurer_must_support_test.rb +0 -67
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_inquire_response_insurer_must_support_test.rb +0 -65
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_submit_request_insurer_must_support_test.rb +0 -67
- data/lib/davinci_pas_test_kit/generated/v2.0.1/insurer/server_submit_response_insurer_must_support_test.rb +0 -65
- data/lib/davinci_pas_test_kit/generated/v2.0.1/medication_request/client_submit_request_medication_request_must_support_test.rb +0 -66
- data/lib/davinci_pas_test_kit/generated/v2.0.1/medication_request/server_submit_request_medication_request_must_support_test.rb +0 -68
- data/lib/davinci_pas_test_kit/generated/v2.0.1/nutrition_order/client_submit_request_nutrition_order_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/nutrition_order/server_submit_request_nutrition_order_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_client_inquiry_must_support_use_case_group.rb +0 -51
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_client_submit_must_support_use_case_group.rb +0 -61
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/client_inquire_request_pas_inquiry_request_bundle_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/server_inquire_request_pas_inquiry_request_bundle_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_request_bundle/server_pas_inquiry_request_bundle_validation_test.rb +0 -95
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_response_bundle/server_inquire_response_pas_inquiry_response_bundle_must_support_test.rb +0 -57
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_inquiry_response_bundle/server_pas_inquiry_response_bundle_validation_test.rb +0 -89
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/client_submit_request_pas_request_bundle_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/server_pas_request_bundle_validation_test.rb +0 -95
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_request_bundle/server_submit_request_pas_request_bundle_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_response_bundle/server_pas_response_bundle_validation_test.rb +0 -89
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_response_bundle/server_submit_response_pas_response_bundle_must_support_test.rb +0 -57
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_approval_use_case_group.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_denial_use_case_group.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_must_support_use_case_group.rb +0 -268
- data/lib/davinci_pas_test_kit/generated/v2.0.1/pas_server_pended_use_case_group.rb +0 -90
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/client_inquire_request_practitioner_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/client_submit_request_practitioner_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_inquire_request_practitioner_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_inquire_response_practitioner_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_submit_request_practitioner_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner/server_submit_response_practitioner_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/client_inquire_request_practitioner_role_must_support_test.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/client_submit_request_practitioner_role_must_support_test.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_inquire_request_practitioner_role_must_support_test.rb +0 -56
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_inquire_response_practitioner_role_must_support_test.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_submit_request_practitioner_role_must_support_test.rb +0 -56
- data/lib/davinci_pas_test_kit/generated/v2.0.1/practitioner_role/server_submit_response_practitioner_role_must_support_test.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/client_inquire_request_requestor_must_support_test.rb +0 -68
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/client_submit_request_requestor_must_support_test.rb +0 -68
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_inquire_response_requestor_must_support_test.rb +0 -68
- data/lib/davinci_pas_test_kit/generated/v2.0.1/requestor/server_submit_response_requestor_must_support_test.rb +0 -68
- data/lib/davinci_pas_test_kit/generated/v2.0.1/resource_list.rb +0 -54
- data/lib/davinci_pas_test_kit/generated/v2.0.1/service_request/client_submit_request_service_request_must_support_test.rb +0 -58
- data/lib/davinci_pas_test_kit/generated/v2.0.1/service_request/server_submit_request_service_request_must_support_test.rb +0 -60
- data/lib/davinci_pas_test_kit/generated/v2.0.1/task/server_inquire_response_task_must_support_test.rb +0 -66
- data/lib/davinci_pas_test_kit/generated/v2.0.1/task/server_submit_response_task_must_support_test.rb +0 -66
- data/lib/davinci_pas_test_kit/generator/group_generator.rb +0 -470
- data/lib/davinci_pas_test_kit/generator/group_metadata.rb +0 -73
- data/lib/davinci_pas_test_kit/generator/naming.rb +0 -50
- data/lib/davinci_pas_test_kit/generator/operation_test_generator.rb +0 -149
- data/lib/davinci_pas_test_kit/generator/resource_list_generator.rb +0 -59
- data/lib/davinci_pas_test_kit/generator/templates/group.rb.erb +0 -136
- data/lib/davinci_pas_test_kit/generator/templates/operation.rb.erb +0 -65
- data/lib/davinci_pas_test_kit/generator/templates/resource_list.rb.erb +0 -13
- data/lib/davinci_pas_test_kit/generator/templates/validation.rb.erb +0 -99
- data/lib/davinci_pas_test_kit/generator/validation_test_generator.rb +0 -172
- data/lib/davinci_pas_test_kit/generator/value_extractor.rb +0 -51
- data/lib/davinci_pas_test_kit/must_support_test.rb +0 -71
- data/lib/davinci_pas_test_kit/pas_subscription_verification.rb +0 -30
- data/lib/davinci_pas_test_kit/tags.rb +0 -17
- data/lib/davinci_pas_test_kit/user_input_response.rb +0 -35
- data/lib/davinci_pas_test_kit/validation_test.rb +0 -57
- /data/lib/davinci_pas_test_kit/{certs → client/certs}/InfernoCA.key +0 -0
- /data/lib/davinci_pas_test_kit/{certs → client/certs}/InfernoCA.pem +0 -0
- /data/lib/davinci_pas_test_kit/{certs → client/certs}/TestKit.pem +0 -0
- /data/lib/davinci_pas_test_kit/{certs → client/certs}/TestKitPrivateKey.key +0 -0
- /data/lib/davinci_pas_test_kit/{descriptions.rb → client/client_input_descriptions.rb} +0 -0
- /data/lib/davinci_pas_test_kit/{custom_groups → client}/v2.0.1/pas_client_workflows_group.rb +0 -0
- /data/lib/davinci_pas_test_kit/{custom_groups → server}/v2.0.1/error_tests/nonconformant_pas_bundle.json +0 -0
data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/must_support_with_attestation_option.rb
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
require_relative '../../../cross_suite/must_support/must_support_data_gathering'
|
|
2
|
+
require_relative '../urls'
|
|
3
|
+
|
|
4
|
+
module DaVinciPASTestKit
|
|
5
|
+
module DaVinciPASV221
|
|
6
|
+
# Aggregates the must support assessment across a list of profiles. Each must support element
|
|
7
|
+
# that was not observed is logged as an info message, and when at least one was not observed the
|
|
8
|
+
# tester is given the opportunity to attest that the client system does not collect that data
|
|
9
|
+
# (and is not required to under the PAS implementation guide). A true attestation passes the
|
|
10
|
+
# test; a false attestation fails it. When every must support element was observed, the test
|
|
11
|
+
# passes without requiring any further input.
|
|
12
|
+
#
|
|
13
|
+
# The must support assessment - including the shared X12 / DataAbsentReason false-positive
|
|
14
|
+
# handling (remove_must_support_false_positives) is leveraged from the cross_suite must support
|
|
15
|
+
class MustSupportWithAttestationOption < Inferno::Test
|
|
16
|
+
include DaVinciPASTestKit::MustSupportDataGathering
|
|
17
|
+
include URLs
|
|
18
|
+
|
|
19
|
+
id :pas_client_v221_must_support_with_attestation_option
|
|
20
|
+
title 'Must support elements are observed across requests'
|
|
21
|
+
description %(
|
|
22
|
+
This test reviews the must support elements observed across the listed profiles in the
|
|
23
|
+
requests made by the client. If any were not observed, the tester has the opportunity to
|
|
24
|
+
attest that the client system does not collect that data (and is not required to under the
|
|
25
|
+
PAS implementation guide).
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
# config.options:
|
|
29
|
+
# profiles: Array of { resource_type:, profile_key:, title: } describing the profiles
|
|
30
|
+
# to assess.
|
|
31
|
+
# require_one_of: Boolean. When true, at least one of the listed resource types must be
|
|
32
|
+
# present (a hard requirement) and only the profiles that are actually
|
|
33
|
+
# present are assessed - used for the "at least one request profile" case.
|
|
34
|
+
# When false, every listed profile is assessed.
|
|
35
|
+
# ig_version:, type: ('request'), operation: ('submit' / 'inquire')
|
|
36
|
+
def profiles
|
|
37
|
+
config.options[:profiles]
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def require_one_of
|
|
41
|
+
config.options[:require_one_of]
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def ig_version
|
|
45
|
+
config.options[:ig_version]
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def type
|
|
49
|
+
config.options[:type]
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def operation
|
|
53
|
+
config.options[:operation]
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def target_resource_types
|
|
57
|
+
@target_resource_types ||= profiles.map { |profile| profile[:resource_type] }.uniq
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def type_of_interest?(resource_type)
|
|
61
|
+
target_resource_types.include?(resource_type)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def grouped_resources
|
|
65
|
+
@grouped_resources ||= (resources_of_interest || []).group_by(&:resourceType)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Query the repository directly instead of the data gathering default (load_tagged_requests): these
|
|
69
|
+
# requests are owned by the gather test, so associating them here would duplicate that
|
|
70
|
+
# association onto each attestation test's result.
|
|
71
|
+
def must_support_requests
|
|
72
|
+
@must_support_requests ||= Inferno::Repositories::Requests.new.tagged_requests(test_session_id, [tag])
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
output :attest_true_url
|
|
76
|
+
output :attest_false_url
|
|
77
|
+
|
|
78
|
+
# Hard-fail if no requests were received at all, and (for require_one_of) if none of the
|
|
79
|
+
# target request profiles are present. These are the only failure paths that aren't attestations.
|
|
80
|
+
run do
|
|
81
|
+
assert must_support_requests.present?, "No #{operation} requests received."
|
|
82
|
+
|
|
83
|
+
if require_one_of
|
|
84
|
+
assert resources_of_interest.present?,
|
|
85
|
+
"#{type.titleize} Bundle(s) must include at least one instance of one of these " \
|
|
86
|
+
"resource types: #{target_resource_types.join(', ')}"
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
unobserved_by_profile = gather_unobserved_elements
|
|
90
|
+
|
|
91
|
+
unobserved_by_profile.each do |profile_title, elements|
|
|
92
|
+
elements.each do |element|
|
|
93
|
+
add_message('info', "Unobserved must support element for profile #{profile_title}: #{element}")
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# If nothing was unobserved, the test passes immediately without requiring any attestation.
|
|
98
|
+
# Otherwise, the tester is given the opportunity to attest that the client system does not collect
|
|
99
|
+
pass 'All must support elements were observed in the requests made by the client.' if
|
|
100
|
+
unobserved_by_profile.empty?
|
|
101
|
+
|
|
102
|
+
identifier = test_session_id
|
|
103
|
+
output attest_true_url: "#{resume_pass_url}?token=#{identifier}",
|
|
104
|
+
attest_false_url: "#{resume_fail_url}?token=#{identifier}"
|
|
105
|
+
|
|
106
|
+
wait(identifier:, message: attestation_message(unobserved_by_profile))
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# @return unobserved must support elements keyed by profile title
|
|
110
|
+
def gather_unobserved_elements
|
|
111
|
+
profiles.each_with_object({}) do |profile, result|
|
|
112
|
+
profile_title = profile[:title] || profile[:resource_type]
|
|
113
|
+
resources = grouped_resources[profile[:resource_type]] || []
|
|
114
|
+
|
|
115
|
+
if resources.blank?
|
|
116
|
+
# In require_one_of mode the tester only needs to demonstrate one of the alternatives,
|
|
117
|
+
# so a profile with no instances is not flagged. Otherwise, the absence of any instance
|
|
118
|
+
# means the profile's must support elements could not be observed at all - flag the
|
|
119
|
+
# resource type itself rather than enumerating every element.
|
|
120
|
+
next if require_one_of
|
|
121
|
+
|
|
122
|
+
result[profile_title] = ["(no #{profile[:resource_type]} instances were observed)"]
|
|
123
|
+
next
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
metadata = load_metadata_for_profile_version(profile[:profile_key], ig_version)
|
|
127
|
+
missing = missing_must_support_elements(resources, nil, metadata:)
|
|
128
|
+
missing = remove_must_support_false_positives(missing, resources, profile[:resource_type])
|
|
129
|
+
|
|
130
|
+
result[profile_title] = missing if missing.present?
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def attestation_message(unobserved_by_profile)
|
|
135
|
+
unobserved_list = unobserved_by_profile.flat_map do |profile_title, elements|
|
|
136
|
+
elements.map { |element| "- #{profile_title}: #{element}" }
|
|
137
|
+
end.join("\n")
|
|
138
|
+
|
|
139
|
+
<<~MESSAGE
|
|
140
|
+
The following #{operation} request must support elements were not observed in the
|
|
141
|
+
requests made by the client:
|
|
142
|
+
|
|
143
|
+
#{unobserved_list}
|
|
144
|
+
|
|
145
|
+
Attest that the client system does **not** collect the data for these unobserved
|
|
146
|
+
must support elements (and is not required to under the PAS implementation guide).
|
|
147
|
+
|
|
148
|
+
[Click here](#{attest_true_url}) if the above statement is **true**. The test will **pass**.
|
|
149
|
+
|
|
150
|
+
[Click here](#{attest_false_url}) if the above statement is **false**. The test will **fail**.
|
|
151
|
+
MESSAGE
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# Builds the test's description from the configured profiles' metadata at load time, so the
|
|
155
|
+
# generated group files stay lean and the listed must support elements stay in sync with the
|
|
156
|
+
# IG metadata. Called from the generated groups: `description build_description(config.options)`.
|
|
157
|
+
def self.build_description(options)
|
|
158
|
+
profiles = options[:profiles] || []
|
|
159
|
+
|
|
160
|
+
sections = profiles.map do |profile|
|
|
161
|
+
metadata = load_profile_metadata(profile[:profile_key], options[:ig_version])
|
|
162
|
+
"### #{profile[:title] || profile[:resource_type]}\n#{metadata.must_support_list_string(indent: 0)}"
|
|
163
|
+
end.join("\n\n")
|
|
164
|
+
|
|
165
|
+
"#{description_intro(require_one_of: options[:require_one_of])}\n\n#{sections}"
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
# The require_one_of intro reproduces the original PasClientMustSupportRequestProfilesTest
|
|
169
|
+
# description, tweaked only to describe the attestation option.
|
|
170
|
+
def self.description_intro(require_one_of:)
|
|
171
|
+
if require_one_of
|
|
172
|
+
<<~INTRO.chomp
|
|
173
|
+
The PAS IG includes four profiles for providing the specifics of the service or product requested
|
|
174
|
+
in the prior authorization request. Any one of these profiles can be referenced in
|
|
175
|
+
the must support element `Claim.item.extension:requestedService`:
|
|
176
|
+
|
|
177
|
+
* PAS Medication Request
|
|
178
|
+
* PAS Service Request
|
|
179
|
+
* PAS Device Request
|
|
180
|
+
* PAS Nutrition Order
|
|
181
|
+
|
|
182
|
+
System are allowed to support only the request profiles that fit their use cases. However,
|
|
183
|
+
they must support at least one of them (because `Claim.item.extension:requestedService` is a
|
|
184
|
+
must support element) and for any request profiles they support, they must be able to
|
|
185
|
+
populate all of the defined must support elements as long as that data is collected within
|
|
186
|
+
and displayed by the system.
|
|
187
|
+
|
|
188
|
+
This test ensures that the submitted request bundles include at least one instance of a
|
|
189
|
+
profile listed above. Then for each profile observed, it checks for the presence of
|
|
190
|
+
each must support element defined in that profile. For must support elements not observed
|
|
191
|
+
on an included request profile, testers can attest that they are not supported by the
|
|
192
|
+
client system.
|
|
193
|
+
|
|
194
|
+
The test will look through the instances included in submissions made by the client
|
|
195
|
+
for the following must support elements:
|
|
196
|
+
INTRO
|
|
197
|
+
else
|
|
198
|
+
<<~INTRO.chomp
|
|
199
|
+
PAS client systems are required to be able to populate must support elements representing
|
|
200
|
+
data collected and displayed to users on instances of all profiles included in requests.
|
|
201
|
+
This test checks all identified instances of the profiles listed below within requests sent
|
|
202
|
+
by the client to ensure that the must support elements are observed. For those not observed,
|
|
203
|
+
testers can attest that they are not supported by the client system.
|
|
204
|
+
INTRO
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
def self.load_profile_metadata(profile_key, version)
|
|
209
|
+
path = File.join(__dir__, '..', '..', '..', 'cross_suite', 'generated', version, profile_key, 'metadata.yml')
|
|
210
|
+
Generator::ProfileMetadata.new(YAML.load_file(path, aliases: true))
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
end
|
data/lib/davinci_pas_test_kit/client/v2.2.1/must_support/pas_client_gather_must_support_test.rb
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require_relative '../../abstract_gather_must_support_test'
|
|
2
|
+
require_relative '../urls'
|
|
3
|
+
|
|
4
|
+
module DaVinciPASTestKit
|
|
5
|
+
module DaVinciPASV221
|
|
6
|
+
class PASClientGatherMustSupportTest < AbstractGatherMustSupportTest
|
|
7
|
+
include URLs
|
|
8
|
+
|
|
9
|
+
id :pas_client_v221_gather_must_support
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require_relative 'workflows/pas_client_approval_submit_test'
|
|
2
|
+
require_relative 'workflows/pas_client_response_attest'
|
|
3
|
+
require_relative 'workflows/pas_client_request_bundle_validation_test'
|
|
4
|
+
require_relative 'workflows/pas_client_response_bundle_validation_test'
|
|
5
|
+
require_relative '../../cross_suite/tags'
|
|
6
|
+
|
|
7
|
+
module DaVinciPASTestKit
|
|
8
|
+
module DaVinciPASV221
|
|
9
|
+
class PASClientApprovalGroup < Inferno::TestGroup
|
|
10
|
+
id :pas_client_v221_approval_group
|
|
11
|
+
title 'Approval Workflow'
|
|
12
|
+
description %(
|
|
13
|
+
During these tests, the client will initiate a prior authorization
|
|
14
|
+
request and show it can respond appropriately to an 'approved' decision.
|
|
15
|
+
)
|
|
16
|
+
run_as_group
|
|
17
|
+
|
|
18
|
+
input :approval_json_response, optional: true
|
|
19
|
+
|
|
20
|
+
test from: :pas_client_v221_approval_submit_test
|
|
21
|
+
test from: :pas_client_v221_request_bundle_validation_test,
|
|
22
|
+
config: { options: { workflow_tag: APPROVAL_WORKFLOW_TAG } }
|
|
23
|
+
|
|
24
|
+
test from: :pas_client_v221_response_bundle_validation_test,
|
|
25
|
+
config: { options: { workflow_tag: APPROVAL_WORKFLOW_TAG } }
|
|
26
|
+
test from: :pas_client_v221_response_attest,
|
|
27
|
+
title: 'PAS client displays the request as "approved"',
|
|
28
|
+
description: %(
|
|
29
|
+
This test provides the tester an opportunity to observe their client following
|
|
30
|
+
the receipt of the approved response and attest that users are able to determine
|
|
31
|
+
that the response has been approved.
|
|
32
|
+
),
|
|
33
|
+
config: { options: {
|
|
34
|
+
workflow_tag: APPROVAL_WORKFLOW_TAG,
|
|
35
|
+
attest_message: "I attest that the client system displays the submitted claim as 'approved' meaning " \
|
|
36
|
+
'that the user can proceed with ordering or providing the requested service.'
|
|
37
|
+
} }
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'smart_app_launch_test_kit'
|
|
2
|
+
require_relative '../../cross_suite/tags'
|
|
3
|
+
|
|
4
|
+
module DaVinciPASTestKit
|
|
5
|
+
module DaVinciPASV221
|
|
6
|
+
class PASClientAuthSMARTGroup < Inferno::TestGroup
|
|
7
|
+
id :pas_client_v221_auth_smart
|
|
8
|
+
title 'Review Authentication Interactions'
|
|
9
|
+
description %(
|
|
10
|
+
During these tests, Inferno will verify that the client interacted with Inferno's
|
|
11
|
+
simulated SMART authorization server in a conformant manner when requesting access tokens
|
|
12
|
+
and that the client under test was able to use provided access tokens to make PAS
|
|
13
|
+
requests.
|
|
14
|
+
|
|
15
|
+
Before running these tests, execute the tests for at least one "PAS workflows" sub-group
|
|
16
|
+
so that the client will request an access token and use it on a PAS request.
|
|
17
|
+
)
|
|
18
|
+
run_as_group
|
|
19
|
+
|
|
20
|
+
# smart auth verification
|
|
21
|
+
test from: :smart_client_token_request_bsca_verification,
|
|
22
|
+
config: {
|
|
23
|
+
options: { endpoint_suite_id: :davinci_pas_client_suite_v221 }
|
|
24
|
+
}
|
|
25
|
+
test from: :smart_client_token_use_verification,
|
|
26
|
+
config: {
|
|
27
|
+
options: { access_request_tags: [SUBMIT_TAG, INQUIRE_TAG] }
|
|
28
|
+
}
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'udap_security_test_kit'
|
|
2
|
+
require_relative '../../cross_suite/tags'
|
|
3
|
+
|
|
4
|
+
module DaVinciPASTestKit
|
|
5
|
+
module DaVinciPASV221
|
|
6
|
+
class PASClientAuthUDAPGroup < Inferno::TestGroup
|
|
7
|
+
id :pas_client_v221_auth_udap
|
|
8
|
+
title 'Review UDAP Authentication Interactions'
|
|
9
|
+
description %(
|
|
10
|
+
During these tests, Inferno will verify that the client interacted with Inferno's
|
|
11
|
+
simulated UDAP authorization server in a conformant manner when requesting access tokens
|
|
12
|
+
and that the client under test was able to use provided access tokens to make PAS
|
|
13
|
+
requests.
|
|
14
|
+
|
|
15
|
+
Before running these tests, execute the tests for at least one "PAS workflows" sub-group
|
|
16
|
+
so that the client will request an access token and use it on a PAS request.
|
|
17
|
+
)
|
|
18
|
+
run_as_group
|
|
19
|
+
|
|
20
|
+
test from: :udap_client_token_request_cc_verification,
|
|
21
|
+
config: {
|
|
22
|
+
options: { endpoint_suite_id: :davinci_pas_client_suite_v221 }
|
|
23
|
+
}
|
|
24
|
+
test from: :udap_client_token_use_verification,
|
|
25
|
+
config: {
|
|
26
|
+
options: { access_request_tags: [SUBMIT_TAG, INQUIRE_TAG] }
|
|
27
|
+
}
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
require_relative 'workflows/pas_client_claim_update_submit_tests'
|
|
2
|
+
require_relative 'workflows/pas_client_request_bundle_validation_test'
|
|
3
|
+
require_relative 'workflows/pas_client_response_bundle_validation_test'
|
|
4
|
+
require_relative 'workflows/pas_client_claim_update_referenced_claim_test'
|
|
5
|
+
require_relative 'workflows/pas_client_claim_update_grandparent_excluded_test'
|
|
6
|
+
require_relative 'workflows/pas_client_claim_update_referenced_resources_test'
|
|
7
|
+
require_relative 'workflows/pas_client_claim_update_entries_preserved_test'
|
|
8
|
+
require_relative 'workflows/pas_client_claim_update_cancelled_entries_test'
|
|
9
|
+
require_relative 'workflows/pas_client_claim_update_cancelled_items_certtype_test'
|
|
10
|
+
require_relative 'workflows/pas_client_claim_update_changed_entries_test'
|
|
11
|
+
require_relative 'workflows/pas_client_claim_update_cancel_request_test'
|
|
12
|
+
require_relative '../../cross_suite/tags'
|
|
13
|
+
|
|
14
|
+
module DaVinciPASTestKit
|
|
15
|
+
module DaVinciPASV221
|
|
16
|
+
class PASClientClaimUpdatesGroup < Inferno::TestGroup
|
|
17
|
+
id :pas_client_v221_claim_updates_group
|
|
18
|
+
title 'Claim Updates'
|
|
19
|
+
description %(
|
|
20
|
+
During these tests, the client will demonstrate that it can update a previously submitted
|
|
21
|
+
prior authorization request by submitting a sequence of `$submit` requests: an initial
|
|
22
|
+
request, an update that adds an item, an update that modifies one item and cancels another,
|
|
23
|
+
and an update that cancels the entire request.
|
|
24
|
+
|
|
25
|
+
Inferno waits for each submission in turn, automatically continuing once it receives the
|
|
26
|
+
request. Inferno never sends a Subscription notification during these interactions, even if
|
|
27
|
+
the configured response indicates the request was pended.
|
|
28
|
+
|
|
29
|
+
Once all submissions have been received, Inferno validates the conformance of each submitted
|
|
30
|
+
request Bundle and of the response Bundle it returned against the PAS Request and Response
|
|
31
|
+
Bundle profiles, and the verification tests check each Claim Update made during this group for
|
|
32
|
+
conformance with the
|
|
33
|
+
[updating authorization requests](https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#updating-authorization-requests)
|
|
34
|
+
requirements of the PAS IG.
|
|
35
|
+
)
|
|
36
|
+
run_as_group
|
|
37
|
+
|
|
38
|
+
input :claim_update_initial_response, optional: true
|
|
39
|
+
input :claim_update_add_item_response, optional: true
|
|
40
|
+
input :claim_update_modify_cancel_response, optional: true
|
|
41
|
+
input :claim_update_cancel_all_response, optional: true
|
|
42
|
+
|
|
43
|
+
input_order :claim_update_initial_response,
|
|
44
|
+
:claim_update_add_item_response,
|
|
45
|
+
:claim_update_modify_cancel_response,
|
|
46
|
+
:claim_update_cancel_all_response,
|
|
47
|
+
:client_id,
|
|
48
|
+
:session_url_path
|
|
49
|
+
|
|
50
|
+
claim_update_submit_steps = [
|
|
51
|
+
{ key: 'initial', title: 'Initial submission',
|
|
52
|
+
submit: :pas_client_v221_claim_update_initial_submit_test, tag: CLAIM_UPDATE_INITIAL_TAG },
|
|
53
|
+
{ key: 'add_item', title: 'Update - add an item',
|
|
54
|
+
submit: :pas_client_v221_claim_update_add_item_submit_test, tag: CLAIM_UPDATE_ADD_ITEM_TAG },
|
|
55
|
+
{ key: 'modify_cancel', title: 'Update - modify an item and cancel an item',
|
|
56
|
+
submit: :pas_client_v221_claim_update_modify_cancel_submit_test, tag: CLAIM_UPDATE_MODIFY_CANCEL_TAG },
|
|
57
|
+
{ key: 'cancel_all', title: 'Update - cancel the entire request',
|
|
58
|
+
submit: :pas_client_v221_claim_update_cancel_all_submit_test, tag: CLAIM_UPDATE_CANCEL_ALL_TAG }
|
|
59
|
+
]
|
|
60
|
+
|
|
61
|
+
group do
|
|
62
|
+
title 'Interaction'
|
|
63
|
+
description %(
|
|
64
|
+
Inferno waits for each prior authorization submission from the client in turn. Each wait test
|
|
65
|
+
auto-continues when its request is received; no Subscription notifications are triggered.
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
claim_update_submit_steps.each { |step| test from: step[:submit] }
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
group do
|
|
72
|
+
title 'Update Details'
|
|
73
|
+
description %(
|
|
74
|
+
These tests check that the sequence of requests made follow the
|
|
75
|
+
update approach required.
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
test from: :pas_client_v221_claim_update_referenced_claim_test
|
|
79
|
+
test from: :pas_client_v221_claim_update_grandparent_excluded_test
|
|
80
|
+
test from: :pas_client_v221_claim_update_referenced_resources_test
|
|
81
|
+
test from: :pas_client_v221_claim_update_entries_preserved_test
|
|
82
|
+
test from: :pas_client_v221_claim_update_cancelled_entries_test
|
|
83
|
+
test from: :pas_client_v221_claim_update_cancelled_items_certtype_test
|
|
84
|
+
test from: :pas_client_v221_claim_update_changed_entries_test
|
|
85
|
+
test from: :pas_client_v221_claim_update_cancel_request_test
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
group do
|
|
89
|
+
title '$submit Conformance'
|
|
90
|
+
description %(
|
|
91
|
+
For each submission received above, these tests validate the conformance of the request Bundle
|
|
92
|
+
the client submitted and of the response Bundle Inferno returned against the PAS Request and
|
|
93
|
+
Response Bundle profiles.
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
claim_update_submit_steps.each do |step|
|
|
97
|
+
test from: :pas_client_v221_request_bundle_validation_test do
|
|
98
|
+
id :"pas_client_v221_claim_update_request_validation_#{step[:key]}"
|
|
99
|
+
title "#{step[:title]}: submit request Bundle has the correct structure and content"
|
|
100
|
+
config options: { workflow_tag: step[:tag] }
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
test from: :pas_client_v221_response_bundle_validation_test do
|
|
104
|
+
id :"pas_client_v221_claim_update_response_validation_#{step[:key]}"
|
|
105
|
+
title "#{step[:title]}: submit response Bundle has the correct structure and content"
|
|
106
|
+
config options: { workflow_tag: step[:tag] }
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
require_relative 'workflows/pas_client_denial_submit_test'
|
|
2
|
+
require_relative 'workflows/pas_client_response_attest'
|
|
3
|
+
require_relative 'workflows/pas_client_response_bundle_validation_test'
|
|
4
|
+
require_relative 'workflows/pas_client_request_bundle_validation_test'
|
|
5
|
+
require_relative '../user_input_response'
|
|
6
|
+
require_relative '../../cross_suite/tags'
|
|
7
|
+
|
|
8
|
+
module DaVinciPASTestKit
|
|
9
|
+
module DaVinciPASV221
|
|
10
|
+
class PASClientDenialGroup < Inferno::TestGroup
|
|
11
|
+
include UserInputResponse
|
|
12
|
+
|
|
13
|
+
id :pas_client_v221_denial_group
|
|
14
|
+
title 'Denial Workflow'
|
|
15
|
+
description %(
|
|
16
|
+
During these tests, the client will initiate a prior authorization
|
|
17
|
+
request and show it can respond appropriately to a 'denied' decision.
|
|
18
|
+
)
|
|
19
|
+
run_as_group
|
|
20
|
+
|
|
21
|
+
input :denial_json_response, optional: true
|
|
22
|
+
|
|
23
|
+
input_order :denial_json_response,
|
|
24
|
+
:client_id,
|
|
25
|
+
:session_url_path
|
|
26
|
+
|
|
27
|
+
test from: :pas_client_v221_denial_submit_test
|
|
28
|
+
test from: :pas_client_v221_request_bundle_validation_test,
|
|
29
|
+
config: { options: { workflow_tag: DENIAL_WORKFLOW_TAG } }
|
|
30
|
+
test from: :pas_client_v221_response_bundle_validation_test,
|
|
31
|
+
config: { options: { workflow_tag: DENIAL_WORKFLOW_TAG } }
|
|
32
|
+
test from: :pas_client_v221_response_attest,
|
|
33
|
+
title: 'PAS client displays the request as "denied"',
|
|
34
|
+
description: %(
|
|
35
|
+
This test provides the tester an opportunity to observe their client following
|
|
36
|
+
the receipt of the denied response and attest that users are able to determine
|
|
37
|
+
that the response has been denied.
|
|
38
|
+
),
|
|
39
|
+
config: { options: {
|
|
40
|
+
workflow_tag: DENIAL_WORKFLOW_TAG,
|
|
41
|
+
attest_message: "I attest that the client system displays the submitted claim as 'denied', meaning " \
|
|
42
|
+
'that the user cannot proceed with ordering or providing the requested service without ' \
|
|
43
|
+
'making adjustments and submitting for further approval.'
|
|
44
|
+
} }
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require_relative 'pas_client_operation_failure_group'
|
|
2
|
+
require_relative 'pas_client_processing_error_group'
|
|
3
|
+
|
|
4
|
+
module DaVinciPASTestKit
|
|
5
|
+
module DaVinciPASV221
|
|
6
|
+
class PASClientErrorHandlingGroup < Inferno::TestGroup
|
|
7
|
+
id :pas_client_v221_error_handling_group
|
|
8
|
+
title 'Error Handling'
|
|
9
|
+
description %(
|
|
10
|
+
The error handling tests verify that the client can appropriately handle
|
|
11
|
+
[prior authorization error responses](https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#prior-authorization-transaction-error-handling)
|
|
12
|
+
from the server, including both HTTP-level operation failures and
|
|
13
|
+
business-level processing errors conveyed within a response bundle.
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
group from: :pas_client_v221_operation_failure_group
|
|
17
|
+
group from: :pas_client_v221_processing_error_group
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
require_relative 'workflows/pas_client_modification_submit_test'
|
|
2
|
+
require_relative 'workflows/pas_client_modification_verification_test'
|
|
3
|
+
require_relative 'workflows/pas_client_response_attest'
|
|
4
|
+
require_relative 'workflows/pas_client_request_bundle_validation_test'
|
|
5
|
+
require_relative 'workflows/pas_client_response_bundle_validation_test'
|
|
6
|
+
require_relative '../../cross_suite/tags'
|
|
7
|
+
|
|
8
|
+
module DaVinciPASTestKit
|
|
9
|
+
module DaVinciPASV221
|
|
10
|
+
class PASClientModificationGroup < Inferno::TestGroup
|
|
11
|
+
id :pas_client_v221_modification_group
|
|
12
|
+
title 'Payer Modifications'
|
|
13
|
+
description %(
|
|
14
|
+
During these tests, the client will initiate a prior authorization request and show it can
|
|
15
|
+
respond appropriately to a response in which the payer authorizes items that differ from those
|
|
16
|
+
that were requested.
|
|
17
|
+
|
|
18
|
+
In PAS v2.2.1, payers are permitted to
|
|
19
|
+
[return items that are different from what was requested](https://hl7.org/fhir/us/davinci-pas/2.2.1/en/specification.html#returning-authorized-items-that-are-different-from-what-was-requested).
|
|
20
|
+
When this happens, each requested item is returned in the `ClaimResponse.item` with an adjudication
|
|
21
|
+
status of A6 ('Modified') and the details of what was actually authorized are returned in a
|
|
22
|
+
corresponding `ClaimResponse.addItem`. Clients must be able to process these responses and make the
|
|
23
|
+
details of the authorized items available to their users.
|
|
24
|
+
)
|
|
25
|
+
run_as_group
|
|
26
|
+
|
|
27
|
+
input :modification_json_response, optional: true
|
|
28
|
+
|
|
29
|
+
test from: :pas_client_v221_modification_submit_test
|
|
30
|
+
test from: :pas_client_v221_request_bundle_validation_test,
|
|
31
|
+
config: { options: { workflow_tag: MODIFICATION_WORKFLOW_TAG } }
|
|
32
|
+
|
|
33
|
+
test from: :pas_client_v221_response_bundle_validation_test,
|
|
34
|
+
config: { options: { workflow_tag: MODIFICATION_WORKFLOW_TAG } }
|
|
35
|
+
test from: :pas_client_v221_modification_verification_test
|
|
36
|
+
|
|
37
|
+
test from: :pas_client_v221_response_attest,
|
|
38
|
+
title: 'PAS client makes the details of the payer-authorized items available',
|
|
39
|
+
description: %(
|
|
40
|
+
This test provides the tester an opportunity to observe their client following
|
|
41
|
+
the receipt of the payer modification response and attest that users are able to
|
|
42
|
+
determine the details of what was actually authorized by the payer.
|
|
43
|
+
),
|
|
44
|
+
config: { options: {
|
|
45
|
+
workflow_tag: MODIFICATION_WORKFLOW_TAG,
|
|
46
|
+
attest_message: 'I attest that the details of what the payer actually authorized, including any ' \
|
|
47
|
+
'modifications made to the requested items, were made available to users in the ' \
|
|
48
|
+
'client system.'
|
|
49
|
+
} }
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
require_relative '../generated/v2.2.1/pas_client_submit_must_support_group'
|
|
2
|
+
require_relative '../generated/v2.2.1/pas_client_inquire_must_support_group'
|
|
3
|
+
require_relative '../generated/v2.2.1/pas_client_submit_response_must_support_group'
|
|
4
|
+
require_relative '../generated/v2.2.1/pas_client_inquire_response_must_support_group'
|
|
5
|
+
require_relative 'must_support/pas_client_gather_must_support_test'
|
|
6
|
+
require_relative 'workflows/pas_client_request_bundle_validation_test'
|
|
7
|
+
require_relative 'workflows/pas_client_response_bundle_validation_test'
|
|
8
|
+
require_relative 'workflows/pas_client_inquire_request_bundle_validation_test'
|
|
9
|
+
require_relative 'workflows/pas_client_inquire_response_bundle_validation_test'
|
|
10
|
+
|
|
11
|
+
module DaVinciPASTestKit
|
|
12
|
+
module DaVinciPASV221
|
|
13
|
+
class PASClientMustSupportGroup < Inferno::TestGroup
|
|
14
|
+
id :pas_client_v221_must_support
|
|
15
|
+
title 'Must Support Elements'
|
|
16
|
+
run_as_group
|
|
17
|
+
description %(
|
|
18
|
+
During these tests, the client will show that it supports all PAS-defined profiles and the must support
|
|
19
|
+
elements defined in them. This includes
|
|
20
|
+
|
|
21
|
+
- The ability to make prior authorization submission and inquiry requests that contain all
|
|
22
|
+
PAS-defined profiles and their must support elements.
|
|
23
|
+
- The ability to receive in responses to those requests all PAS-defined profiles and their
|
|
24
|
+
must support elements.
|
|
25
|
+
|
|
26
|
+
Clients under test will be asked to make additional requests to Inferno demonstrating coverage
|
|
27
|
+
of all must support items in the requests. Clients must also demonstrate that they can handle
|
|
28
|
+
all response must support elements. Because Inferno's mocked responses do not include all must
|
|
29
|
+
support elements, testers will need to provide responses that include examples of all must
|
|
30
|
+
support elements for Inferno to respond with.
|
|
31
|
+
|
|
32
|
+
Note that Inferno will consider requests made during the workflow group of tests, so only
|
|
33
|
+
profiles and must support elements not demonstrated during those tests need to be submitted
|
|
34
|
+
as a part of these.
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
# Combined receive group - single wait test for both submit and inquire
|
|
38
|
+
group do
|
|
39
|
+
id :pas_client_v221_must_support_receive
|
|
40
|
+
title 'Demonstrate Must Support Coverage'
|
|
41
|
+
description %(
|
|
42
|
+
Submit $submit and $inquire requests demonstrating coverage of must support elements.
|
|
43
|
+
Optionally, provide response bundles for Inferno to use when responding. Inferno will
|
|
44
|
+
verify both the requests received and the responses provided.
|
|
45
|
+
)
|
|
46
|
+
run_as_group
|
|
47
|
+
|
|
48
|
+
test from: :pas_client_v221_gather_must_support
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# $submit Bundle Conformance Validation
|
|
52
|
+
group do
|
|
53
|
+
title '$submit Bundle Conformance'
|
|
54
|
+
description %(
|
|
55
|
+
Verify that the $submit request bundles sent by the client are conformant
|
|
56
|
+
and that the $submit response bundles provided for Inferno to send back
|
|
57
|
+
are conformant.
|
|
58
|
+
)
|
|
59
|
+
run_as_group
|
|
60
|
+
|
|
61
|
+
test from: :pas_client_v221_request_bundle_validation_test,
|
|
62
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG } }
|
|
63
|
+
test from: :pas_client_v221_response_bundle_validation_test,
|
|
64
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG } }
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# $submit Request Must Support (fail when errors detected)
|
|
68
|
+
group from: :pas_client_v221_submit_must_support
|
|
69
|
+
|
|
70
|
+
# $submit Response Must Support (skip when errors detected)
|
|
71
|
+
group from: :pas_client_v221_submit_response_must_support
|
|
72
|
+
|
|
73
|
+
# $inquire Bundle Conformance Validation
|
|
74
|
+
group do
|
|
75
|
+
title '$inquire Bundle Conformance'
|
|
76
|
+
description %(
|
|
77
|
+
Verify that the $inquire request bundles sent by the client are conformant
|
|
78
|
+
and that the $inquire response bundles provided for Inferno to send back
|
|
79
|
+
are conformant.
|
|
80
|
+
)
|
|
81
|
+
run_as_group
|
|
82
|
+
|
|
83
|
+
test from: :pas_client_v221_inquire_request_bundle_validation_test,
|
|
84
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG } }
|
|
85
|
+
test from: :pas_client_v221_inquire_response_bundle_validation_test,
|
|
86
|
+
config: { options: { workflow_tag: MUST_SUPPORT_WORKFLOW_TAG } }
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# $inquire Request Must Support (fail when errors detected)
|
|
90
|
+
group from: :pas_client_v221_inquire_must_support
|
|
91
|
+
|
|
92
|
+
# $inquire Response Must Support (skip when errors detected)
|
|
93
|
+
group from: :pas_client_v221_inquire_response_must_support
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|