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.
Files changed (195) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/lib/au_ps_inferno/generator/constants.rb +61 -0
  4. data/lib/au_ps_inferno/generator/generator.rb +76 -0
  5. data/lib/au_ps_inferno/generator/generator_group_based_metadata_module.rb +113 -0
  6. data/lib/au_ps_inferno/generator/ig_resources_extractor.rb +149 -0
  7. data/lib/au_ps_inferno/generator/metadata_manager.rb +608 -0
  8. data/lib/au_ps_inferno/generator/naming.rb +52 -0
  9. data/lib/au_ps_inferno/generator/sections_validation_group_generator.rb +182 -0
  10. data/lib/au_ps_inferno/generator/test_file_generator.rb +77 -0
  11. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_bundle_instance.rb +56 -0
  12. 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
  13. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_bundle_must_support_conformance.rb +16 -0
  14. 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
  15. 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
  16. 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
  17. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_attester.rb +26 -0
  18. 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
  19. 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
  20. 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
  21. 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
  22. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_author.rb +28 -0
  23. 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
  24. 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
  25. 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
  26. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_custodian.rb +26 -0
  27. 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
  28. 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
  29. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_mandatory_sections.rb +20 -0
  30. 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
  31. 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
  32. 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
  33. 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
  34. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_must_support_conformance.rb +28 -0
  35. 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
  36. 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
  37. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_optional_sections.rb +20 -0
  38. 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
  39. 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
  40. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_recommended_sections.rb +20 -0
  41. 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
  42. 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
  43. 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
  44. 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
  45. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_subject.rb +28 -0
  46. 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
  47. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/au_ps_composition_undefined_sections.rb +18 -0
  48. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/bundle_validation/suite_au_ps_bundle_instance_bundle_validation_bundle_valid.rb +21 -0
  49. 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
  50. data/lib/au_ps_inferno/suite/au_ps_bundle_instance/bundle_validation.rb +20 -0
  51. data/lib/au_ps_inferno/suite/au_ps_retrieve_cs_group/au_ps_cs_is_valid_test.rb +21 -0
  52. data/lib/au_ps_inferno/suite/au_ps_retrieve_cs_group/au_ps_cs_supports_au_ps_profiles.rb +40 -0
  53. data/lib/au_ps_inferno/suite/au_ps_retrieve_cs_group/au_ps_cs_supports_ips_recommended_ops.rb +19 -0
  54. data/lib/au_ps_inferno/suite/au_ps_retrieve_cs_group/au_ps_retrieve_cs_group.rb +47 -0
  55. data/lib/au_ps_inferno/suite/au_ps_v100.rb +39 -0
  56. 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
  57. data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_bundle_must_support_conformance.rb +16 -0
  58. 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
  59. 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
  60. 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
  61. data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_attester.rb +26 -0
  62. 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
  63. 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
  64. 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
  65. 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
  66. data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_author.rb +28 -0
  67. 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
  68. 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
  69. 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
  70. data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_custodian.rb +26 -0
  71. 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
  72. 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
  73. data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_mandatory_sections.rb +20 -0
  74. 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
  75. 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
  76. 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
  77. 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
  78. data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_must_support_conformance.rb +28 -0
  79. 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
  80. 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
  81. data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_optional_sections.rb +20 -0
  82. 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
  83. 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
  84. data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_recommended_sections.rb +20 -0
  85. 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
  86. 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
  87. 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
  88. 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
  89. data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_subject.rb +28 -0
  90. 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
  91. data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/au_ps_composition_undefined_sections.rb +18 -0
  92. 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
  93. 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
  94. data/lib/au_ps_inferno/suite/generate_au_ps_using_ips_summary_validation_tests/bundle_validation.rb +20 -0
  95. 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
  96. 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
  97. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_bundle_must_support_conformance.rb +16 -0
  98. 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
  99. 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
  100. 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
  101. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_attester.rb +26 -0
  102. 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
  103. 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
  104. 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
  105. 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
  106. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_author.rb +28 -0
  107. 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
  108. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_custodian/composition_custodian_custodian_ms_subelements.rb +21 -0
  109. 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
  110. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_custodian.rb +26 -0
  111. 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
  112. 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
  113. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_mandatory_sections.rb +20 -0
  114. 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
  115. 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
  116. 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
  117. 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
  118. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_must_support_conformance.rb +28 -0
  119. 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
  120. 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
  121. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_optional_sections.rb +20 -0
  122. 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
  123. 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
  124. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_recommended_sections.rb +20 -0
  125. 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
  126. 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
  127. 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
  128. 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
  129. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_subject.rb +28 -0
  130. 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
  131. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/au_ps_composition_undefined_sections.rb +18 -0
  132. 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
  133. 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
  134. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/bundle_validation.rb +20 -0
  135. data/lib/au_ps_inferno/suite/retrieve_au_ps_bundle_validation_tests/retrieve_au_ps_bundle_validation_tests.rb +56 -0
  136. data/lib/au_ps_inferno/utils/attester/basic_test_attester_identifier_slices.rb +74 -0
  137. data/lib/au_ps_inferno/utils/attester/basic_test_attester_message_helpers.rb +16 -0
  138. data/lib/au_ps_inferno/utils/attester/basic_test_attester_module.rb +14 -0
  139. data/lib/au_ps_inferno/utils/attester/basic_test_attester_resource.rb +54 -0
  140. data/lib/au_ps_inferno/utils/author/basic_test_author_module.rb +12 -0
  141. data/lib/au_ps_inferno/utils/author/basic_test_author_resource.rb +32 -0
  142. data/lib/au_ps_inferno/utils/author/basic_test_author_tests.rb +24 -0
  143. data/lib/au_ps_inferno/utils/basic_test/bundle_module.rb +87 -0
  144. data/lib/au_ps_inferno/utils/basic_test/capability_operations_module.rb +37 -0
  145. data/lib/au_ps_inferno/utils/basic_test/composition_elements_and_slices_module.rb +98 -0
  146. data/lib/au_ps_inferno/utils/basic_test/composition_section_check_resources_ms_elements_module.rb +197 -0
  147. data/lib/au_ps_inferno/utils/basic_test/composition_section_read_issues_helpers_module.rb +66 -0
  148. data/lib/au_ps_inferno/utils/basic_test/composition_section_read_module.rb +127 -0
  149. data/lib/au_ps_inferno/utils/basic_test/composition_subelements_module.rb +84 -0
  150. data/lib/au_ps_inferno/utils/basic_test/ms_elements_populated_helpers_module.rb +38 -0
  151. data/lib/au_ps_inferno/utils/basic_test/ms_elements_populated_module.rb +71 -0
  152. data/lib/au_ps_inferno/utils/basic_test/ms_identifier_slices_module.rb +61 -0
  153. data/lib/au_ps_inferno/utils/basic_test/ms_sub_elements_populated_module.rb +128 -0
  154. data/lib/au_ps_inferno/utils/basic_test/paths_module.rb +26 -0
  155. data/lib/au_ps_inferno/utils/basic_test/resolve_path_debug_module.rb +45 -0
  156. data/lib/au_ps_inferno/utils/basic_test/resolve_resource_type_module.rb +52 -0
  157. data/lib/au_ps_inferno/utils/basic_test/resource_helpers_module.rb +129 -0
  158. data/lib/au_ps_inferno/utils/basic_test/scratch_bundle_entries_module.rb +30 -0
  159. data/lib/au_ps_inferno/utils/basic_test/section_bundle_validation_module.rb +70 -0
  160. data/lib/au_ps_inferno/utils/basic_test_class.rb +56 -0
  161. data/lib/au_ps_inferno/utils/basic_test_contants_module.rb +32 -0
  162. data/lib/au_ps_inferno/utils/basic_test_with_url.rb +8 -0
  163. data/lib/au_ps_inferno/utils/basic_validate_bundle_test.rb +43 -0
  164. data/lib/au_ps_inferno/utils/bundle_decorator.rb +81 -0
  165. data/lib/au_ps_inferno/utils/bundle_entry_decorator.rb +19 -0
  166. data/lib/au_ps_inferno/utils/bundle_is_valid_class.rb +31 -0
  167. data/lib/au_ps_inferno/utils/capability_statement_decorator.rb +20 -0
  168. data/lib/au_ps_inferno/utils/composition_decorator.rb +56 -0
  169. data/lib/au_ps_inferno/utils/composition_utils/boolean_and_stats.rb +28 -0
  170. data/lib/au_ps_inferno/utils/composition_utils.rb +29 -0
  171. data/lib/au_ps_inferno/utils/custodian/basic_test_custodian_identifier_slices.rb +47 -0
  172. data/lib/au_ps_inferno/utils/custodian/basic_test_custodian_module.rb +14 -0
  173. data/lib/au_ps_inferno/utils/custodian/basic_test_custodian_resource.rb +32 -0
  174. data/lib/au_ps_inferno/utils/custodian/basic_test_custodian_tests.rb +19 -0
  175. data/lib/au_ps_inferno/utils/inferno_suite_generator_compat.rb +7 -0
  176. data/lib/au_ps_inferno/utils/ips_bundle_is_valid_class.rb +15 -0
  177. data/lib/au_ps_inferno/utils/ips_retrieve_bundle_test_class.rb +17 -0
  178. data/lib/au_ps_inferno/utils/ips_summary_valid_bundle_class.rb +15 -0
  179. data/lib/au_ps_inferno/utils/metadata_manager.rb +58 -0
  180. data/lib/au_ps_inferno/utils/retrieve_bundle_test_class.rb +81 -0
  181. data/lib/au_ps_inferno/utils/rich_message_class.rb +23 -0
  182. data/lib/au_ps_inferno/utils/rich_validation_message.rb +42 -0
  183. data/lib/au_ps_inferno/utils/section_decorator.rb +23 -0
  184. data/lib/au_ps_inferno/utils/section_names_mapping.rb +31 -0
  185. data/lib/au_ps_inferno/utils/section_test_class.rb +18 -0
  186. data/lib/au_ps_inferno/utils/section_test_module.rb +16 -0
  187. data/lib/au_ps_inferno/utils/structure_definition_decorator.rb +28 -0
  188. data/lib/au_ps_inferno/utils/subject/basic_test_subject_module.rb +12 -0
  189. data/lib/au_ps_inferno/utils/subject/basic_test_subject_patient_ms_other_tests.rb +15 -0
  190. data/lib/au_ps_inferno/utils/subject/basic_test_subject_resource.rb +21 -0
  191. data/lib/au_ps_inferno/utils/summary_valid_bundle_class.rb +84 -0
  192. data/lib/au_ps_inferno/utils/validator_helpers.rb +92 -0
  193. data/lib/au_ps_inferno/version.rb +6 -0
  194. data/lib/au_ps_inferno.rb +3 -0
  195. 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