au_ps_inferno 0.1.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 +7 -0
- data/LICENSE +201 -0
- data/lib/au_ps_inferno/generator/constants.rb +61 -0
- data/lib/au_ps_inferno/generator/generator.rb +76 -0
- data/lib/au_ps_inferno/generator/generator_group_based_metadata_module.rb +113 -0
- data/lib/au_ps_inferno/generator/ig_resources_extractor.rb +149 -0
- data/lib/au_ps_inferno/generator/metadata_manager.rb +608 -0
- data/lib/au_ps_inferno/generator/naming.rb +52 -0
- data/lib/au_ps_inferno/generator/sections_validation_group_generator.rb +182 -0
- data/lib/au_ps_inferno/generator/test_file_generator.rb +77 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_bundle_instance.rb +56 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_bundle_must_support_conformance/suite_au_ps_bundle_instance_au_ps_bundle_must_support_conformance_bundle_must_support_populated.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_bundle_must_support_conformance.rb +16 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_attester/suite_au_ps_bundle_instance_au_ps_composition_attester_attester_party_ms_elements.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_attester/suite_au_ps_bundle_instance_au_ps_composition_attester_attester_party_ms_identifier_slices.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_attester/suite_au_ps_bundle_instance_au_ps_composition_attester_attester_party_ms_subelements.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_attester.rb +26 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_author/suite_au_ps_bundle_instance_au_ps_composition_author_author_ms_elements.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_author/suite_au_ps_bundle_instance_au_ps_composition_author_author_ms_identifier_slices.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_author/suite_au_ps_bundle_instance_au_ps_composition_author_author_ms_subelements.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_author/suite_au_ps_bundle_instance_au_ps_composition_author_author_resource_type_is_valid.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_author.rb +28 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_custodian/suite_au_ps_bundle_instance_au_ps_composition_custodian_custodian_ms_elements.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_custodian/suite_au_ps_bundle_instance_au_ps_composition_custodian_custodian_ms_identifier_slices.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_custodian/suite_au_ps_bundle_instance_au_ps_composition_custodian_custodian_ms_subelements.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_custodian.rb +26 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_mandatory_sections/composition_mandatory_sections_mandatory_sections_entry_profiles.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_mandatory_sections/suite_au_ps_bundle_instance_au_ps_composition_mandatory_sections_sections_shall_populated.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_mandatory_sections.rb +20 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_mandatory_ms_populated.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_ms_subelements_populated.rb +22 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_optional_ms_populated.rb +22 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_optional_ms_slices.rb +22 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_must_support_conformance.rb +28 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_optional_sections/suite_au_ps_bundle_instance_au_ps_composition_optional_sections_optional_sections_entry_profiles.rb +22 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_optional_sections/suite_au_ps_bundle_instance_au_ps_composition_optional_sections_sections_may_populated.rb +24 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_optional_sections.rb +20 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_recommended_sections/composition_recommended_sections_recommended_sections_entry_profiles.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_recommended_sections/suite_au_ps_bundle_instance_au_ps_composition_recommended_sections_sections_should_populated.rb +22 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_recommended_sections.rb +20 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_subject/suite_au_ps_bundle_instance_au_ps_composition_subject_subject_ms_elements.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_subject/suite_au_ps_bundle_instance_au_ps_composition_subject_subject_ms_identifier_slices.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_subject/suite_au_ps_bundle_instance_au_ps_composition_subject_subject_ms_subelements_populated.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_subject/suite_au_ps_bundle_instance_au_ps_composition_subject_subject_resource_type_is_valid.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_subject.rb +28 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_undefined_sections/suite_au_ps_bundle_instance_au_ps_composition_undefined_sections_sections_may_undefined.rb +24 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_undefined_sections.rb +18 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/bundle_validation/suite_au_ps_bundle_instance_bundle_validation_bundle_valid.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/bundle_validation/suite_au_ps_bundle_instance_bundle_validation_bundle_valid_ips.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_bundle_instance/bundle_validation.rb +20 -0
- data/lib/au_ps_inferno/suite/au_ps_retrieve_cs_group/au_ps_cs_is_valid_test.rb +21 -0
- data/lib/au_ps_inferno/suite/au_ps_retrieve_cs_group/au_ps_cs_supports_au_ps_profiles.rb +40 -0
- data/lib/au_ps_inferno/suite/au_ps_retrieve_cs_group/au_ps_cs_supports_ips_recommended_ops.rb +19 -0
- data/lib/au_ps_inferno/suite/au_ps_retrieve_cs_group/au_ps_retrieve_cs_group.rb +47 -0
- data/lib/au_ps_inferno/suite/au_ps_v100.rb +39 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_bundle_must_support_conformance/bundle_must_support_conformance_bundle_must_support_populated.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_bundle_must_support_conformance.rb +16 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_attester/composition_attester_attester_party_ms_elements.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_attester/composition_attester_attester_party_ms_identifier_slices.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_attester/composition_attester_attester_party_ms_subelements.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_attester.rb +26 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_author/composition_author_author_ms_elements.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_author/composition_author_author_ms_identifier_slices.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_author/composition_author_author_ms_subelements.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_author/composition_author_author_resource_type_is_valid.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_author.rb +28 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_custodian/composition_custodian_custodian_ms_elements.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_custodian/composition_custodian_custodian_ms_identifier_slices.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_custodian/composition_custodian_custodian_ms_subelements.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_custodian.rb +26 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_mandatory_sections/composition_mandatory_sections_mandatory_sections_entry_profiles.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_mandatory_sections/composition_mandatory_sections_sections_shall_populated.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_mandatory_sections.rb +20 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_mandatory_ms_populated.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_ms_subelements_populated.rb +22 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_optional_ms_populated.rb +22 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_optional_ms_slices.rb +22 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_must_support_conformance.rb +28 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_optional_sections/composition_optional_sections_optional_sections_entry_profiles.rb +22 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_optional_sections/composition_optional_sections_sections_may_populated.rb +24 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_optional_sections.rb +20 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_recommended_sections/composition_recommended_sections_recommended_sections_entry_profiles.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_recommended_sections/composition_recommended_sections_sections_should_populated.rb +22 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_recommended_sections.rb +20 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_subject/composition_subject_subject_ms_elements.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_subject/composition_subject_subject_ms_identifier_slices.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_subject/composition_subject_subject_ms_subelements_populated.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_subject/composition_subject_subject_resource_type_is_valid.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_subject.rb +28 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_undefined_sections/composition_undefined_sections_sections_may_undefined.rb +24 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_undefined_sections.rb +18 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/bundle_validation/suite_generate_au_ps_using_ips_summary_validation_tests_bundle_validation_bundle_valid.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/bundle_validation/suite_generate_au_ps_using_ips_summary_validation_tests_bundle_validation_bundle_valid_ips.rb +21 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/bundle_validation.rb +20 -0
- data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/generate_au_ps_using_ips_summary_validation_tests.rb +56 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_bundle_must_support_conformance/bundle_must_support_conformance_bundle_must_support_populated.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_bundle_must_support_conformance.rb +16 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_attester/composition_attester_attester_party_ms_elements.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_attester/composition_attester_attester_party_ms_identifier_slices.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_attester/composition_attester_attester_party_ms_subelements.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_attester.rb +26 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_author/composition_author_author_ms_identifier_slices.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_author/composition_author_author_resource_type_is_valid.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_author/suite_retrieve_au_ps_bundle_validation_tests_au_ps_composition_author_author_ms_elements.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_author/suite_retrieve_au_ps_bundle_validation_tests_au_ps_composition_author_author_ms_subelements.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_author.rb +28 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_custodian/composition_custodian_custodian_ms_identifier_slices.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_custodian/composition_custodian_custodian_ms_subelements.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_custodian/suite_retrieve_au_ps_bundle_validation_tests_au_ps_composition_custodian_custodian_ms_elements.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_custodian.rb +26 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_mandatory_sections/composition_mandatory_sections_mandatory_sections_entry_profiles.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_mandatory_sections/composition_mandatory_sections_sections_shall_populated.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_mandatory_sections.rb +20 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_mandatory_ms_populated.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_ms_subelements_populated.rb +22 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_optional_ms_populated.rb +22 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_optional_ms_slices.rb +22 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_must_support_conformance.rb +28 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_optional_sections/composition_optional_sections_optional_sections_entry_profiles.rb +22 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_optional_sections/composition_optional_sections_sections_may_populated.rb +24 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_optional_sections.rb +20 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_recommended_sections/composition_recommended_sections_recommended_sections_entry_profiles.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_recommended_sections/composition_recommended_sections_sections_should_populated.rb +22 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_recommended_sections.rb +20 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_subject/composition_subject_subject_ms_identifier_slices.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_subject/composition_subject_subject_ms_subelements_populated.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_subject/composition_subject_subject_resource_type_is_valid.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_subject/suite_retrieve_au_ps_bundle_validation_tests_au_ps_composition_subject_subject_ms_elements.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_subject.rb +28 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_undefined_sections/composition_undefined_sections_sections_may_undefined.rb +24 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_undefined_sections.rb +18 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/bundle_validation/suite_retrieve_au_ps_bundle_validation_tests_bundle_validation_bundle_valid.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/bundle_validation/suite_retrieve_au_ps_bundle_validation_tests_bundle_validation_bundle_valid_ips.rb +21 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/bundle_validation.rb +20 -0
- data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/retrieve_au_ps_bundle_validation_tests.rb +56 -0
- data/lib/au_ps_inferno/utils/attester/basic_test_attester_identifier_slices.rb +74 -0
- data/lib/au_ps_inferno/utils/attester/basic_test_attester_message_helpers.rb +16 -0
- data/lib/au_ps_inferno/utils/attester/basic_test_attester_module.rb +14 -0
- data/lib/au_ps_inferno/utils/attester/basic_test_attester_resource.rb +54 -0
- data/lib/au_ps_inferno/utils/author/basic_test_author_module.rb +12 -0
- data/lib/au_ps_inferno/utils/author/basic_test_author_resource.rb +32 -0
- data/lib/au_ps_inferno/utils/author/basic_test_author_tests.rb +24 -0
- data/lib/au_ps_inferno/utils/basic_test/bundle_module.rb +87 -0
- data/lib/au_ps_inferno/utils/basic_test/capability_operations_module.rb +37 -0
- data/lib/au_ps_inferno/utils/basic_test/composition_elements_and_slices_module.rb +98 -0
- data/lib/au_ps_inferno/utils/basic_test/composition_section_check_resources_ms_elements_module.rb +197 -0
- data/lib/au_ps_inferno/utils/basic_test/composition_section_read_issues_helpers_module.rb +66 -0
- data/lib/au_ps_inferno/utils/basic_test/composition_section_read_module.rb +127 -0
- data/lib/au_ps_inferno/utils/basic_test/composition_subelements_module.rb +84 -0
- data/lib/au_ps_inferno/utils/basic_test/ms_elements_populated_helpers_module.rb +38 -0
- data/lib/au_ps_inferno/utils/basic_test/ms_elements_populated_module.rb +71 -0
- data/lib/au_ps_inferno/utils/basic_test/ms_identifier_slices_module.rb +61 -0
- data/lib/au_ps_inferno/utils/basic_test/ms_sub_elements_populated_module.rb +128 -0
- data/lib/au_ps_inferno/utils/basic_test/paths_module.rb +26 -0
- data/lib/au_ps_inferno/utils/basic_test/resolve_path_debug_module.rb +45 -0
- data/lib/au_ps_inferno/utils/basic_test/resolve_resource_type_module.rb +52 -0
- data/lib/au_ps_inferno/utils/basic_test/resource_helpers_module.rb +129 -0
- data/lib/au_ps_inferno/utils/basic_test/scratch_bundle_entries_module.rb +30 -0
- data/lib/au_ps_inferno/utils/basic_test/section_bundle_validation_module.rb +70 -0
- data/lib/au_ps_inferno/utils/basic_test_class.rb +56 -0
- data/lib/au_ps_inferno/utils/basic_test_contants_module.rb +32 -0
- data/lib/au_ps_inferno/utils/basic_test_with_url.rb +8 -0
- data/lib/au_ps_inferno/utils/basic_validate_bundle_test.rb +43 -0
- data/lib/au_ps_inferno/utils/bundle_decorator.rb +81 -0
- data/lib/au_ps_inferno/utils/bundle_entry_decorator.rb +19 -0
- data/lib/au_ps_inferno/utils/bundle_is_valid_class.rb +31 -0
- data/lib/au_ps_inferno/utils/capability_statement_decorator.rb +20 -0
- data/lib/au_ps_inferno/utils/composition_decorator.rb +56 -0
- data/lib/au_ps_inferno/utils/composition_utils/boolean_and_stats.rb +28 -0
- data/lib/au_ps_inferno/utils/composition_utils.rb +29 -0
- data/lib/au_ps_inferno/utils/custodian/basic_test_custodian_identifier_slices.rb +47 -0
- data/lib/au_ps_inferno/utils/custodian/basic_test_custodian_module.rb +14 -0
- data/lib/au_ps_inferno/utils/custodian/basic_test_custodian_resource.rb +32 -0
- data/lib/au_ps_inferno/utils/custodian/basic_test_custodian_tests.rb +19 -0
- data/lib/au_ps_inferno/utils/inferno_suite_generator_compat.rb +7 -0
- data/lib/au_ps_inferno/utils/ips_bundle_is_valid_class.rb +15 -0
- data/lib/au_ps_inferno/utils/ips_retrieve_bundle_test_class.rb +17 -0
- data/lib/au_ps_inferno/utils/ips_summary_valid_bundle_class.rb +15 -0
- data/lib/au_ps_inferno/utils/metadata_manager.rb +58 -0
- data/lib/au_ps_inferno/utils/retrieve_bundle_test_class.rb +81 -0
- data/lib/au_ps_inferno/utils/rich_message_class.rb +23 -0
- data/lib/au_ps_inferno/utils/rich_validation_message.rb +42 -0
- data/lib/au_ps_inferno/utils/section_decorator.rb +23 -0
- data/lib/au_ps_inferno/utils/section_names_mapping.rb +31 -0
- data/lib/au_ps_inferno/utils/section_test_class.rb +18 -0
- data/lib/au_ps_inferno/utils/section_test_module.rb +16 -0
- data/lib/au_ps_inferno/utils/structure_definition_decorator.rb +28 -0
- data/lib/au_ps_inferno/utils/subject/basic_test_subject_module.rb +12 -0
- data/lib/au_ps_inferno/utils/subject/basic_test_subject_patient_ms_other_tests.rb +15 -0
- data/lib/au_ps_inferno/utils/subject/basic_test_subject_resource.rb +21 -0
- data/lib/au_ps_inferno/utils/summary_valid_bundle_class.rb +84 -0
- data/lib/au_ps_inferno/utils/validator_helpers.rb +92 -0
- data/lib/au_ps_inferno/version.rb +6 -0
- data/lib/au_ps_inferno.rb +3 -0
- metadata +310 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'test_file_generator'
|
|
4
|
+
|
|
5
|
+
class Generator
|
|
6
|
+
# Holds data for a section group.
|
|
7
|
+
#
|
|
8
|
+
# @attr_reader [Hash] group_data The data representing the section group.
|
|
9
|
+
class SectionGroupData
|
|
10
|
+
# Initializes a new SectionGroupData.
|
|
11
|
+
#
|
|
12
|
+
# @param group_data [Hash] Metadata about the section group.
|
|
13
|
+
def initialize(group_data)
|
|
14
|
+
@group_data = group_data
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Holds and manages test data for validating a section.
|
|
19
|
+
#
|
|
20
|
+
# @attr_reader [Hash] section_data The hash containing section data.
|
|
21
|
+
class SectionTestData
|
|
22
|
+
# Initializes a new SectionTestData.
|
|
23
|
+
#
|
|
24
|
+
# @param section_data [Hash] Hash with keys:
|
|
25
|
+
# :short, :definition, :min, :max, :required, :mustSupport, :code, :entries
|
|
26
|
+
# @param version_suffix [String] Optional version suffix (e.g. "100preview")
|
|
27
|
+
def initialize(section_data, metadata, version_suffix = '')
|
|
28
|
+
@version_suffix = version_suffix.to_s
|
|
29
|
+
@metadata = metadata
|
|
30
|
+
assign_section_attributes(section_data)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def assign_section_attributes(section_data)
|
|
34
|
+
@id = section_data[:id]
|
|
35
|
+
@short = section_data[:short]
|
|
36
|
+
@definition = section_data[:definition]
|
|
37
|
+
@min = section_data[:min]
|
|
38
|
+
@max = section_data[:max]
|
|
39
|
+
@required = section_data[:required]
|
|
40
|
+
@must_support = section_data[:mustSupport]
|
|
41
|
+
@code = section_data[:code]
|
|
42
|
+
@entries = section_data[:entries]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Generates a section-specific validation test file using the TestFileGenerator.
|
|
46
|
+
#
|
|
47
|
+
# @param output_base [String, nil] Optional base path for output
|
|
48
|
+
# @return [void]
|
|
49
|
+
def generate(output_base = nil)
|
|
50
|
+
config = {
|
|
51
|
+
template_file_path: 'au_ps_specific_section_validation_test.rb.erb',
|
|
52
|
+
output_file_path: "#{test_id}.rb",
|
|
53
|
+
attributes: build_attributes
|
|
54
|
+
}
|
|
55
|
+
config[:output_base] = output_base if output_base
|
|
56
|
+
test_file_generator = TestFileGenerator.new(config)
|
|
57
|
+
test_file_generator.generate
|
|
58
|
+
test_file_generator.test_file_summary
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
private
|
|
62
|
+
|
|
63
|
+
# Builds the attributes hash passed to the test file template.
|
|
64
|
+
#
|
|
65
|
+
# @return [Hash] Hash of template attributes for file generation.
|
|
66
|
+
def build_attributes
|
|
67
|
+
{
|
|
68
|
+
test_class_name: versioned_test_class_name,
|
|
69
|
+
section_name: humanized_name,
|
|
70
|
+
test_id: test_id,
|
|
71
|
+
optional: @min.zero?,
|
|
72
|
+
section_id: @metadata.normalize_section_data(@id)
|
|
73
|
+
}
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def versioned_test_class_name
|
|
77
|
+
base = "AUPSSections#{humanized_name.gsub(' ', '')}Validation"
|
|
78
|
+
@version_suffix.empty? ? base : "#{base}#{@version_suffix}"
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Returns a human-friendly section name for use in output and test classes.
|
|
82
|
+
#
|
|
83
|
+
# @return [String] Humanized section name with generic phrases stripped.
|
|
84
|
+
def humanized_name
|
|
85
|
+
@short.gsub('Patient Summary', '').gsub('Section', '').strip
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Returns a short, underscored name for test ID components.
|
|
89
|
+
#
|
|
90
|
+
# @return [String] Custom section ID.
|
|
91
|
+
def test_id_custom
|
|
92
|
+
@short.gsub('Patient Summary', '').gsub('Section', '').strip.gsub(' ', '_').downcase
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Returns the full test ID for the file name and references.
|
|
96
|
+
#
|
|
97
|
+
# @return [String] Full test ID.
|
|
98
|
+
def test_id
|
|
99
|
+
base = "au_ps_sections_#{test_id_custom}_validation"
|
|
100
|
+
@version_suffix.empty? ? base : "#{base}_#{@version_suffix}"
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# Generates a validation group and corresponding test entities
|
|
105
|
+
# for AU Patient Summary Composition sections.
|
|
106
|
+
class SectionsValidationGroupGenerator
|
|
107
|
+
GROUP_NAME = 'au_ps_sections_validation_group'
|
|
108
|
+
|
|
109
|
+
# Initializes the group generator with metadata.
|
|
110
|
+
#
|
|
111
|
+
# @param metadata [#composition_sections] Object holding the composition_sections array.
|
|
112
|
+
# @param version_suffix [String] Optional version suffix for class names and ids (e.g. "100preview")
|
|
113
|
+
# @param suite_version [String] Suite version for output path (e.g. "0.5.0-preview").
|
|
114
|
+
# Output is written to lib/au_ps_inferno/{suite_version}/{group_name}/.
|
|
115
|
+
def initialize(metadata, version_suffix = '', suite_version = '')
|
|
116
|
+
@metadata = metadata
|
|
117
|
+
@version_suffix = version_suffix.to_s
|
|
118
|
+
@suite_version = suite_version.to_s
|
|
119
|
+
@test_entities = []
|
|
120
|
+
@output_base = build_output_base
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# Generates the group and its test entity files.
|
|
124
|
+
#
|
|
125
|
+
# @return [void]
|
|
126
|
+
def generate
|
|
127
|
+
generate_test_entities
|
|
128
|
+
generate_group
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def versioned_group_id
|
|
132
|
+
@version_suffix.empty? ? GROUP_NAME : "#{GROUP_NAME}_#{@version_suffix}"
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
private
|
|
136
|
+
|
|
137
|
+
# Stub for generating the overall sections validation group.
|
|
138
|
+
#
|
|
139
|
+
# @return [void]
|
|
140
|
+
def generate_group
|
|
141
|
+
config = {
|
|
142
|
+
template_file_path: 'generic_group.rb.erb',
|
|
143
|
+
output_file_path: 'au_ps_sections_validation_group.rb',
|
|
144
|
+
attributes: build_group_attributes
|
|
145
|
+
}
|
|
146
|
+
config[:output_base] = @output_base if @output_base
|
|
147
|
+
TestFileGenerator.new(config).generate
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def build_group_attributes
|
|
151
|
+
{
|
|
152
|
+
group_class_name: versioned_group_class,
|
|
153
|
+
group_title: 'AU PS Sections Validation',
|
|
154
|
+
group_description: 'Validates that each AU PS composition section is present and ' \
|
|
155
|
+
'references conformant resources.',
|
|
156
|
+
group_id: versioned_group_id,
|
|
157
|
+
tests: @test_entities
|
|
158
|
+
}
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
def versioned_group_class
|
|
162
|
+
base = 'AUPSSectionsValidationGroup'
|
|
163
|
+
@version_suffix.empty? ? base : "#{base}#{@version_suffix}"
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
# Iterates all sections and generates their validation test files.
|
|
167
|
+
#
|
|
168
|
+
# @return [void]
|
|
169
|
+
def generate_test_entities
|
|
170
|
+
@metadata.composition_sections.each do |section|
|
|
171
|
+
@test_entities << SectionTestData.new(section, @metadata, @version_suffix).generate(@output_base)
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def build_output_base
|
|
176
|
+
return nil if @suite_version.empty?
|
|
177
|
+
|
|
178
|
+
# Path relative to project root when running from Rake
|
|
179
|
+
File.expand_path(File.join('lib', 'au_ps_inferno', @suite_version, GROUP_NAME))
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
end
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'erb'
|
|
4
|
+
require 'fileutils'
|
|
5
|
+
|
|
6
|
+
class Generator
|
|
7
|
+
# TestFile generator. Use config to generate the test file.
|
|
8
|
+
# Config is: template_file_path, output_file_path, optional output_base, and attributes.
|
|
9
|
+
# All template files should be in the templates folder.
|
|
10
|
+
class TestFileGenerator
|
|
11
|
+
# @param config [Hash] configuration hash
|
|
12
|
+
# @option config [String] :template_file_path Relative path to the ERB template file
|
|
13
|
+
# @option config [String] :output_file_path Relative path or filename for the generated file
|
|
14
|
+
# @option config [String] :output_base Optional. When set, output is written to output_base/output_file_path
|
|
15
|
+
# (e.g. lib/au_ps_inferno/1.0.0-preview/au_ps_sections_validation_group). When omitted, uses generator/tests/.
|
|
16
|
+
# @option config [Hash] :attributes Hash of variables made available to the ERB template
|
|
17
|
+
def initialize(config)
|
|
18
|
+
@template_file_path = config[:template_file_path]
|
|
19
|
+
@output_file_path = config[:output_file_path]
|
|
20
|
+
@output_base = config[:output_base]
|
|
21
|
+
@attributes = config[:attributes]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Generates the test file by rendering the template using the provided attributes.
|
|
25
|
+
# The result is saved to output_base/output_file_path when output_base is set, else under generator/tests/.
|
|
26
|
+
#
|
|
27
|
+
# @return [void]
|
|
28
|
+
def generate
|
|
29
|
+
template = ERB.new(File.read(template_file_path))
|
|
30
|
+
path = output_file_path
|
|
31
|
+
FileUtils.mkdir_p(File.dirname(path))
|
|
32
|
+
File.write(path, template.result(erb_binding))
|
|
33
|
+
puts "Test file generated: #{path}"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_file_summary
|
|
37
|
+
{
|
|
38
|
+
file_path: output_file_path,
|
|
39
|
+
attributes: @attributes
|
|
40
|
+
}
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
private
|
|
44
|
+
|
|
45
|
+
# Returns the absolute path to the ERB template file,
|
|
46
|
+
# assumed to be in the 'templates' directory relative to this file.
|
|
47
|
+
#
|
|
48
|
+
# @return [String] Absolute path to the template file
|
|
49
|
+
def template_file_path
|
|
50
|
+
File.join(File.dirname(__FILE__), 'templates', @template_file_path)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Returns the absolute path to the output test file.
|
|
54
|
+
# When output_base is set, uses output_base/output_file_path; otherwise uses generator/tests/.
|
|
55
|
+
#
|
|
56
|
+
# @return [String] Absolute path to the output test file
|
|
57
|
+
def output_file_path
|
|
58
|
+
if @output_base
|
|
59
|
+
File.join(File.expand_path(@output_base), @output_file_path)
|
|
60
|
+
else
|
|
61
|
+
File.join(File.dirname(__FILE__), 'tests', @output_file_path)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Prepares the binding for ERB by defining all provided attributes as methods
|
|
66
|
+
# on an object, then returning that object's binding.
|
|
67
|
+
#
|
|
68
|
+
# @return [Binding] Binding context with attribute accessors defined
|
|
69
|
+
def erb_binding
|
|
70
|
+
context = Object.new
|
|
71
|
+
@attributes.each do |key, value|
|
|
72
|
+
context.define_singleton_method(key) { value }
|
|
73
|
+
end
|
|
74
|
+
context.instance_eval { binding }
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'bundle_validation'
|
|
4
|
+
|
|
5
|
+
require_relative 'au_ps_bundle_must_support_conformance'
|
|
6
|
+
|
|
7
|
+
require_relative 'au_ps_composition_must_support_conformance'
|
|
8
|
+
|
|
9
|
+
require_relative 'au_ps_composition_mandatory_sections'
|
|
10
|
+
|
|
11
|
+
require_relative 'au_ps_composition_recommended_sections'
|
|
12
|
+
|
|
13
|
+
require_relative 'au_ps_composition_optional_sections'
|
|
14
|
+
|
|
15
|
+
require_relative 'au_ps_composition_undefined_sections'
|
|
16
|
+
|
|
17
|
+
require_relative 'au_ps_composition_subject'
|
|
18
|
+
|
|
19
|
+
require_relative 'au_ps_composition_author'
|
|
20
|
+
|
|
21
|
+
require_relative 'au_ps_composition_custodian'
|
|
22
|
+
|
|
23
|
+
require_relative 'au_ps_composition_attester'
|
|
24
|
+
|
|
25
|
+
module AUPSTestKit
|
|
26
|
+
# Automatically generated high order group for AU PS Bundle Instance
|
|
27
|
+
class AUPSSuiteAuPsBundleInstance < Inferno::TestGroup
|
|
28
|
+
title 'AU PS Bundle Instance'
|
|
29
|
+
description 'Validates a static AU PS bundle instance for profile conformance, Must Support elements, and composition sections.'
|
|
30
|
+
id :suite_au_ps_bundle_instance
|
|
31
|
+
|
|
32
|
+
run_as_group
|
|
33
|
+
|
|
34
|
+
group from: :suite_au_ps_bundle_instance_bundle_validation
|
|
35
|
+
|
|
36
|
+
group from: :suite_au_ps_bundle_instance_au_ps_bundle_must_support_conformance
|
|
37
|
+
|
|
38
|
+
group from: :suite_au_ps_bundle_instance_au_ps_composition_must_support_conformance
|
|
39
|
+
|
|
40
|
+
group from: :suite_au_ps_bundle_instance_au_ps_composition_mandatory_sections
|
|
41
|
+
|
|
42
|
+
group from: :suite_au_ps_bundle_instance_au_ps_composition_recommended_sections
|
|
43
|
+
|
|
44
|
+
group from: :suite_au_ps_bundle_instance_au_ps_composition_optional_sections
|
|
45
|
+
|
|
46
|
+
group from: :suite_au_ps_bundle_instance_au_ps_composition_undefined_sections
|
|
47
|
+
|
|
48
|
+
group from: :suite_au_ps_bundle_instance_au_ps_composition_subject
|
|
49
|
+
|
|
50
|
+
group from: :suite_au_ps_bundle_instance_au_ps_composition_author
|
|
51
|
+
|
|
52
|
+
group from: :suite_au_ps_bundle_instance_au_ps_composition_custodian
|
|
53
|
+
|
|
54
|
+
group from: :suite_au_ps_bundle_instance_au_ps_composition_attester
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../utils/basic_test_class'
|
|
4
|
+
require_relative '../../../utils/metadata_manager'
|
|
5
|
+
|
|
6
|
+
module AUPSTestKit
|
|
7
|
+
# Automatically generated primitive test for AU PS Bundle Must Support elements are correctly populated
|
|
8
|
+
class AUPSSuiteAuPsBundleInstanceAuPsBundleMustSupportConformanceAuPsBundleMustSupportElementsAreCorrectlyPopulated < BasicTest
|
|
9
|
+
title 'AU PS Bundle Must Support elements are correctly populated'
|
|
10
|
+
description 'Must Support elements SHALL be populated when an element value is known and allowed to share.'
|
|
11
|
+
id :suite_au_ps_bundle_instance_au_ps_bundle_must_support_conformance_bundle_must_support_populated
|
|
12
|
+
|
|
13
|
+
def metadata_manager
|
|
14
|
+
@metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
run do
|
|
18
|
+
bundle_mandatory_ms_elements_info
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'au_ps_bundle_must_support_conformance/suite_au_ps_bundle_instance_au_ps_bundle_must_support_conformance_bundle_must_support_populated'
|
|
4
|
+
|
|
5
|
+
module AUPSTestKit
|
|
6
|
+
# Automatically generated primitive group for AU PS Bundle Must Support Conformance
|
|
7
|
+
class AUPSSuiteAuPsBundleInstanceAuPsBundleMustSupportConformance < Inferno::TestGroup
|
|
8
|
+
title 'AU PS Bundle Must Support Conformance'
|
|
9
|
+
description 'Verifies that Must Support elements at the bundle level are populated when data is available.'
|
|
10
|
+
id :suite_au_ps_bundle_instance_au_ps_bundle_must_support_conformance
|
|
11
|
+
|
|
12
|
+
run_as_group
|
|
13
|
+
|
|
14
|
+
test from: :suite_au_ps_bundle_instance_au_ps_bundle_must_support_conformance_bundle_must_support_populated
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../utils/basic_test_class'
|
|
4
|
+
require_relative '../../../utils/metadata_manager'
|
|
5
|
+
|
|
6
|
+
module AUPSTestKit
|
|
7
|
+
# Automatically generated primitive test for Must Support elements SHALL be populated if a value is known
|
|
8
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionAttesterMustSupportElementsShallBePopulatedIfAValueIsKnown < BasicTest
|
|
9
|
+
title 'Must Support elements SHALL be populated if a value is known'
|
|
10
|
+
description 'Must Support elements SHALL be populated if a value is known'
|
|
11
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_attester_attester_party_ms_elements
|
|
12
|
+
|
|
13
|
+
def metadata_manager
|
|
14
|
+
@metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
run do
|
|
18
|
+
ms_elements_populated_message('attester')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../utils/basic_test_class'
|
|
4
|
+
require_relative '../../../utils/metadata_manager'
|
|
5
|
+
|
|
6
|
+
module AUPSTestKit
|
|
7
|
+
# Automatically generated primitive test for Must Support identifier slices SHALL be populated if a value is known
|
|
8
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionAttesterMustSupportIdentifierSlicesShallBePopulatedIfAValueIsKnown < BasicTest
|
|
9
|
+
title 'Must Support identifier slices SHALL be populated if a value is known'
|
|
10
|
+
description 'Must Support identifier slices SHALL be populated if a value is known'
|
|
11
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_attester_attester_party_ms_identifier_slices
|
|
12
|
+
|
|
13
|
+
def metadata_manager
|
|
14
|
+
@metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
run do
|
|
18
|
+
test_composition_attester_party_ms_identifier_slices
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../utils/basic_test_class'
|
|
4
|
+
require_relative '../../../utils/metadata_manager'
|
|
5
|
+
|
|
6
|
+
module AUPSTestKit
|
|
7
|
+
# Automatically generated primitive test for Must Support sub-element SHALL be populated if a value is known
|
|
8
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionAttesterMustSupportSubelementShallBePopulatedIfAValueIsKnown < BasicTest
|
|
9
|
+
title 'Must Support sub-element SHALL be populated if a value is known'
|
|
10
|
+
description 'Must Support sub-element SHALL be populated if a value is known'
|
|
11
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_attester_attester_party_ms_subelements
|
|
12
|
+
|
|
13
|
+
def metadata_manager
|
|
14
|
+
@metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
run do
|
|
18
|
+
ms_sub_elements_populated_message('attester')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'au_ps_composition_attester/suite_au_ps_bundle_instance_au_ps_composition_attester_attester_party_ms_elements'
|
|
4
|
+
|
|
5
|
+
require_relative 'au_ps_composition_attester/suite_au_ps_bundle_instance_au_ps_composition_attester_attester_party_ms_subelements'
|
|
6
|
+
|
|
7
|
+
require_relative 'au_ps_composition_attester/suite_au_ps_bundle_instance_au_ps_composition_attester_attester_party_ms_identifier_slices'
|
|
8
|
+
|
|
9
|
+
module AUPSTestKit
|
|
10
|
+
# Automatically generated primitive group for AU PS Composition Attester
|
|
11
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionAttester < Inferno::TestGroup
|
|
12
|
+
title 'AU PS Composition Attester'
|
|
13
|
+
description 'Verify the referenced attester.party is a correctly populated AU PS Patient, RelatedPerson, Practitioner, PractitionerRole, or Organization resource.'
|
|
14
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_attester
|
|
15
|
+
|
|
16
|
+
optional
|
|
17
|
+
|
|
18
|
+
run_as_group
|
|
19
|
+
|
|
20
|
+
test from: :suite_au_ps_bundle_instance_au_ps_composition_attester_attester_party_ms_elements
|
|
21
|
+
|
|
22
|
+
test from: :suite_au_ps_bundle_instance_au_ps_composition_attester_attester_party_ms_subelements
|
|
23
|
+
|
|
24
|
+
test from: :suite_au_ps_bundle_instance_au_ps_composition_attester_attester_party_ms_identifier_slices
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../utils/basic_test_class'
|
|
4
|
+
require_relative '../../../utils/metadata_manager'
|
|
5
|
+
|
|
6
|
+
module AUPSTestKit
|
|
7
|
+
# Automatically generated primitive test for Must Support elements SHALL be populated if a value is known
|
|
8
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionAuthorMustSupportElementsShallBePopulatedIfAValueIsKnown < BasicTest
|
|
9
|
+
title 'Must Support elements SHALL be populated if a value is known'
|
|
10
|
+
description 'Must Support elements SHALL be populated if a value is known'
|
|
11
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_author_author_ms_elements
|
|
12
|
+
|
|
13
|
+
def metadata_manager
|
|
14
|
+
@metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
run do
|
|
18
|
+
ms_elements_populated_message('author')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../utils/basic_test_class'
|
|
4
|
+
require_relative '../../../utils/metadata_manager'
|
|
5
|
+
|
|
6
|
+
module AUPSTestKit
|
|
7
|
+
# Automatically generated primitive test for Must Support identifier slices SHALL be populated if a value is known
|
|
8
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionAuthorMustSupportIdentifierSlicesShallBePopulatedIfAValueIsKnown < BasicTest
|
|
9
|
+
title 'Must Support identifier slices SHALL be populated if a value is known'
|
|
10
|
+
description 'Must Support identifier slices SHALL be populated if a value is known'
|
|
11
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_author_author_ms_identifier_slices
|
|
12
|
+
|
|
13
|
+
def metadata_manager
|
|
14
|
+
@metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
run do
|
|
18
|
+
test_composition_author_ms_identifier_slices
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../utils/basic_test_class'
|
|
4
|
+
require_relative '../../../utils/metadata_manager'
|
|
5
|
+
|
|
6
|
+
module AUPSTestKit
|
|
7
|
+
# Automatically generated primitive test for Must Support sub-elements SHALL be populated if a value is known
|
|
8
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionAuthorMustSupportSubelementsShallBePopulatedIfAValueIsKnown < BasicTest
|
|
9
|
+
title 'Must Support sub-elements SHALL be populated if a value is known'
|
|
10
|
+
description 'Must Support sub-elements SHALL be populated if a value is known'
|
|
11
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_author_author_ms_subelements
|
|
12
|
+
|
|
13
|
+
def metadata_manager
|
|
14
|
+
@metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
run do
|
|
18
|
+
ms_sub_elements_populated_message('author')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../utils/basic_test_class'
|
|
4
|
+
require_relative '../../../utils/metadata_manager'
|
|
5
|
+
|
|
6
|
+
module AUPSTestKit
|
|
7
|
+
# Automatically generated primitive test for Author reference in the AU PS Composition SHALL resolve to a valid resource type (Practitioner, PractitionerRole, Device, Patient, RelatedPerson, Organization).
|
|
8
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionAuthorAuthorReferenceInTheAuPsCompositionShallResolveToAValidResourceTypePractitionerPractitionerroleDevicePatientRelatedpersonOrganization < BasicTest
|
|
9
|
+
title 'Author reference in the AU PS Composition SHALL resolve to a valid resource type (Practitioner, PractitionerRole, Device, Patient, RelatedPerson, Organization).'
|
|
10
|
+
description 'Author reference in the AU PS Composition SHALL resolve to a valid resource type (Practitioner, PractitionerRole, Device, Patient, RelatedPerson, Organization).'
|
|
11
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_author_author_resource_type_is_valid
|
|
12
|
+
|
|
13
|
+
def metadata_manager
|
|
14
|
+
@metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
run do
|
|
18
|
+
test_resource_type_is_valid?('author')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'au_ps_composition_author/suite_au_ps_bundle_instance_au_ps_composition_author_author_resource_type_is_valid'
|
|
4
|
+
|
|
5
|
+
require_relative 'au_ps_composition_author/suite_au_ps_bundle_instance_au_ps_composition_author_author_ms_elements'
|
|
6
|
+
|
|
7
|
+
require_relative 'au_ps_composition_author/suite_au_ps_bundle_instance_au_ps_composition_author_author_ms_subelements'
|
|
8
|
+
|
|
9
|
+
require_relative 'au_ps_composition_author/suite_au_ps_bundle_instance_au_ps_composition_author_author_ms_identifier_slices'
|
|
10
|
+
|
|
11
|
+
module AUPSTestKit
|
|
12
|
+
# Automatically generated primitive group for AU PS Composition Author
|
|
13
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionAuthor < Inferno::TestGroup
|
|
14
|
+
title 'AU PS Composition Author'
|
|
15
|
+
description 'Verify the referenced author is a correctly populated AU PS Practitioner, AU PS PractitionerRole, AU PS Patient, AU PS RelatedPerson, AU PS Organization profiles or Device resource.'
|
|
16
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_author
|
|
17
|
+
|
|
18
|
+
run_as_group
|
|
19
|
+
|
|
20
|
+
test from: :suite_au_ps_bundle_instance_au_ps_composition_author_author_resource_type_is_valid
|
|
21
|
+
|
|
22
|
+
test from: :suite_au_ps_bundle_instance_au_ps_composition_author_author_ms_elements
|
|
23
|
+
|
|
24
|
+
test from: :suite_au_ps_bundle_instance_au_ps_composition_author_author_ms_subelements
|
|
25
|
+
|
|
26
|
+
test from: :suite_au_ps_bundle_instance_au_ps_composition_author_author_ms_identifier_slices
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../utils/basic_test_class'
|
|
4
|
+
require_relative '../../../utils/metadata_manager'
|
|
5
|
+
|
|
6
|
+
module AUPSTestKit
|
|
7
|
+
# Automatically generated primitive test for Must Support element SHALL be populated if a value is known
|
|
8
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionCustodianMustSupportElementShallBePopulatedIfAValueIsKnown < BasicTest
|
|
9
|
+
title 'Must Support element SHALL be populated if a value is known'
|
|
10
|
+
description 'Must Support element SHALL be populated if a value is known'
|
|
11
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_custodian_custodian_ms_elements
|
|
12
|
+
|
|
13
|
+
def metadata_manager
|
|
14
|
+
@metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
run do
|
|
18
|
+
ms_elements_populated_message('custodian')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../utils/basic_test_class'
|
|
4
|
+
require_relative '../../../utils/metadata_manager'
|
|
5
|
+
|
|
6
|
+
module AUPSTestKit
|
|
7
|
+
# Automatically generated primitive test for Must Support identifier slices SHALL be populated if a value is known
|
|
8
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionCustodianMustSupportIdentifierSlicesShallBePopulatedIfAValueIsKnown < BasicTest
|
|
9
|
+
title 'Must Support identifier slices SHALL be populated if a value is known'
|
|
10
|
+
description 'Must Support identifier slices SHALL be populated if a value is known'
|
|
11
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_custodian_custodian_ms_identifier_slices
|
|
12
|
+
|
|
13
|
+
def metadata_manager
|
|
14
|
+
@metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
run do
|
|
18
|
+
test_composition_custodian_ms_identifier_slices
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../utils/basic_test_class'
|
|
4
|
+
require_relative '../../../utils/metadata_manager'
|
|
5
|
+
|
|
6
|
+
module AUPSTestKit
|
|
7
|
+
# Automatically generated primitive test for Must Support sub-element SHALL be populated if a value is known
|
|
8
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionCustodianMustSupportSubelementShallBePopulatedIfAValueIsKnown < BasicTest
|
|
9
|
+
title 'Must Support sub-element SHALL be populated if a value is known'
|
|
10
|
+
description 'Must Support sub-element SHALL be populated if a value is known'
|
|
11
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_custodian_custodian_ms_subelements
|
|
12
|
+
|
|
13
|
+
def metadata_manager
|
|
14
|
+
@metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
run do
|
|
18
|
+
ms_sub_elements_populated_message('custodian')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'au_ps_composition_custodian/suite_au_ps_bundle_instance_au_ps_composition_custodian_custodian_ms_elements'
|
|
4
|
+
|
|
5
|
+
require_relative 'au_ps_composition_custodian/suite_au_ps_bundle_instance_au_ps_composition_custodian_custodian_ms_subelements'
|
|
6
|
+
|
|
7
|
+
require_relative 'au_ps_composition_custodian/suite_au_ps_bundle_instance_au_ps_composition_custodian_custodian_ms_identifier_slices'
|
|
8
|
+
|
|
9
|
+
module AUPSTestKit
|
|
10
|
+
# Automatically generated primitive group for AU PS Composition Custodian
|
|
11
|
+
class AUPSSuiteAuPsBundleInstanceAuPsCompositionCustodian < Inferno::TestGroup
|
|
12
|
+
title 'AU PS Composition Custodian'
|
|
13
|
+
description 'Verify the referenced custodian is a correctly populated AU PS Organization resource.'
|
|
14
|
+
id :suite_au_ps_bundle_instance_au_ps_composition_custodian
|
|
15
|
+
|
|
16
|
+
optional
|
|
17
|
+
|
|
18
|
+
run_as_group
|
|
19
|
+
|
|
20
|
+
test from: :suite_au_ps_bundle_instance_au_ps_composition_custodian_custodian_ms_elements
|
|
21
|
+
|
|
22
|
+
test from: :suite_au_ps_bundle_instance_au_ps_composition_custodian_custodian_ms_subelements
|
|
23
|
+
|
|
24
|
+
test from: :suite_au_ps_bundle_instance_au_ps_composition_custodian_custodian_ms_identifier_slices
|
|
25
|
+
end
|
|
26
|
+
end
|