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,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 Composition Mandatory Sections capable of populating referenced profiles
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionMandatorySectionsAuPsCompositionMandatorySectionsCapableOfPopulatingReferencedProfiles < BasicTest
9
+ title 'AU PS Composition Mandatory Sections capable of populating referenced profiles'
10
+ description 'Mandatory section SHALL be capable of populating section.entry with the referenced profiles and SHOULD correctly populate section.entry if a value is known.'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_mandatory_sections_mandatory_sections_entry_profiles
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_mandatory_sections
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 AU PS Composition Mandatory Sections are correctly populated
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionMandatorySectionsAuPsCompositionMandatorySectionsAreCorrectlyPopulated < BasicTest
9
+ title 'AU PS Composition Mandatory Sections are correctly populated'
10
+ description 'Mandatory section SHALL be correctly populated if a value is known'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_mandatory_sections_sections_shall_populated
12
+
13
+ def metadata_manager
14
+ @metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
15
+ end
16
+
17
+ run do
18
+ validate_populated_sections_in_bundle(%w[11450-4 48765-2 10160-0], %w[title code text])
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'au_ps_composition_mandatory_sections/suite_au_ps_bundle_instance_au_ps_composition_mandatory_sections_sections_shall_populated'
4
+
5
+ require_relative 'au_ps_composition_mandatory_sections/composition_mandatory_sections_mandatory_sections_entry_profiles'
6
+
7
+ module AUPSTestKit
8
+ # Automatically generated primitive group for AU PS Composition Mandatory Sections
9
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionMandatorySections < Inferno::TestGroup
10
+ title 'AU PS Composition Mandatory Sections'
11
+ description 'Verify the mandatory sections are correctly populated in the AU PS Composition resource'
12
+ id :suite_au_ps_bundle_instance_au_ps_composition_mandatory_sections
13
+
14
+ run_as_group
15
+
16
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_mandatory_sections_sections_shall_populated
17
+
18
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_mandatory_sections_mandatory_sections_entry_profiles
19
+ end
20
+ 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 Mandatory Must Support elements are correctly populated
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionMustSupportConformanceMandatoryMustSupportElementsAreCorrectlyPopulated < BasicTest
9
+ title 'Mandatory Must Support elements are correctly populated'
10
+ description 'Mandatory Must Support element SHALL be able to be populated if a value is known and allowed to share.'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_must_support_conformance_composition_mandatory_ms_populated
12
+
13
+ def metadata_manager
14
+ @metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
15
+ end
16
+
17
+ run do
18
+ validate_populated_elements_in_composition(%w[author date status subject title type])
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,22 @@
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 of a complex element are correctly populated
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionMustSupportConformanceMustSupportSubelementsOfAComplexElementAreCorrectlyPopulated < BasicTest
9
+ title 'Must Support sub-elements of a complex element are correctly populated'
10
+ description 'Must Support sub-elements of a complex element SHALL be correctly populated if a value is known'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_must_support_conformance_composition_ms_subelements_populated
12
+
13
+ def metadata_manager
14
+ @metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
15
+ end
16
+
17
+ run do
18
+ validate_populated_sub_elements_in_composition(['attester.mode', 'subject.reference'],
19
+ ['attester.party', 'attester.time'])
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
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 Optional Must Support elements are correctly populated
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionMustSupportConformanceOptionalMustSupportElementsAreCorrectlyPopulated < BasicTest
9
+ title 'Optional Must Support elements are correctly populated'
10
+ description 'Optional Must Support elements SHALL be correctly populated if a value is known'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_must_support_conformance_composition_optional_ms_populated
12
+
13
+ def metadata_manager
14
+ @metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
15
+ end
16
+
17
+ run do
18
+ validate_populated_elements_in_composition(%w[attester custodian identifier text event],
19
+ required: false)
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
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 slices are correctly populated
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionMustSupportConformanceMustSupportSlicesAreCorrectlyPopulated < BasicTest
9
+ title 'Must Support slices are correctly populated'
10
+ description 'Must Support slice careProvisioningEvent SHALL be populated if a value is known.'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_must_support_conformance_composition_optional_ms_slices
12
+
13
+ def metadata_manager
14
+ @metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
15
+ end
16
+
17
+ run do
18
+ validate_populated_slices_in_composition([{ path: 'event', sliceName: 'careProvisioningEvent', min: 0,
19
+ max: '1', mustSupport: true, mandatory_ms_sub_elements: ['period'], optional_ms_sub_elements: ['code'] }])
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_mandatory_ms_populated'
4
+
5
+ require_relative 'au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_optional_ms_populated'
6
+
7
+ require_relative 'au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_ms_subelements_populated'
8
+
9
+ require_relative 'au_ps_composition_must_support_conformance/composition_must_support_conformance_composition_optional_ms_slices'
10
+
11
+ module AUPSTestKit
12
+ # Automatically generated primitive group for AU PS Composition Must Support Conformance
13
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionMustSupportConformance < Inferno::TestGroup
14
+ title 'AU PS Composition Must Support Conformance'
15
+ description 'Verifies that Composition Must Support elements (mandatory, optional, sub-elements, slices) are correctly populated when data is known.'
16
+ id :suite_au_ps_bundle_instance_au_ps_composition_must_support_conformance
17
+
18
+ run_as_group
19
+
20
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_must_support_conformance_composition_mandatory_ms_populated
21
+
22
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_must_support_conformance_composition_optional_ms_populated
23
+
24
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_must_support_conformance_composition_ms_subelements_populated
25
+
26
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_must_support_conformance_composition_optional_ms_slices
27
+ end
28
+ end
@@ -0,0 +1,22 @@
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 Composition Optional Sections capable of populating referenced profiles
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionOptionalSectionsAuPsCompositionOptionalSectionsCapableOfPopulatingReferencedProfiles < BasicTest
9
+ title 'AU PS Composition Optional Sections capable of populating referenced profiles'
10
+ description 'Optional section SHALL be capable of populating section.entry with the referenced profiles and SHOULD correctly populate section.entry if a value is known.'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_optional_sections_optional_sections_entry_profiles
12
+ optional
13
+
14
+ def metadata_manager
15
+ @metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
16
+ end
17
+
18
+ run do
19
+ test_composition_optional_sections
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,24 @@
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 Composition optional sections are correctly populated
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionOptionalSectionsAuPsCompositionOptionalSectionsAreCorrectlyPopulated < BasicTest
9
+ title 'AU PS Composition optional sections are correctly populated'
10
+ description 'Optional section MAY be correctly populated if a value is known'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_optional_sections_sections_may_populated
12
+
13
+ def metadata_manager
14
+ @metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
15
+ end
16
+
17
+ run do
18
+ validate_populated_sections_in_bundle(
19
+ %w[42348-3 104605-1 47420-5 11348-0 10162-6 81338-6 18776-5 29762-2
20
+ 8716-3], %w[title code text], optional: true
21
+ )
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'au_ps_composition_optional_sections/suite_au_ps_bundle_instance_au_ps_composition_optional_sections_sections_may_populated'
4
+
5
+ require_relative 'au_ps_composition_optional_sections/suite_au_ps_bundle_instance_au_ps_composition_optional_sections_optional_sections_entry_profiles'
6
+
7
+ module AUPSTestKit
8
+ # Automatically generated primitive group for AU PS Composition Optional Sections
9
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionOptionalSections < Inferno::TestGroup
10
+ title 'AU PS Composition Optional Sections'
11
+ description 'Verify the optional sections are correctly populated in the AU PS Composition resource'
12
+ id :suite_au_ps_bundle_instance_au_ps_composition_optional_sections
13
+
14
+ run_as_group
15
+
16
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_optional_sections_sections_may_populated
17
+
18
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_optional_sections_optional_sections_entry_profiles
19
+ end
20
+ 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 Composition Recommended Sections capable of populating referenced profiles
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionRecommendedSectionsAuPsCompositionRecommendedSectionsCapableOfPopulatingReferencedProfiles < BasicTest
9
+ title 'AU PS Composition Recommended Sections capable of populating referenced profiles'
10
+ description 'Recommended section SHALL be capable of populating section.entry with the referenced profiles and SHOULD correctly populate section.entry if a value is known.'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_recommended_sections_recommended_sections_entry_profiles
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_recommended_sections
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,22 @@
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 Composition recommended sections are correctly populated
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionRecommendedSectionsAuPsCompositionRecommendedSectionsAreCorrectlyPopulated < BasicTest
9
+ title 'AU PS Composition recommended sections are correctly populated'
10
+ description 'Recommended sections SHOULD be correctly populated if a value is known'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_recommended_sections_sections_should_populated
12
+
13
+ def metadata_manager
14
+ @metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
15
+ end
16
+
17
+ run do
18
+ validate_populated_sections_in_bundle(%w[11369-6 30954-2 47519-4 46264-8], %w[title code text],
19
+ optional: true)
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'au_ps_composition_recommended_sections/suite_au_ps_bundle_instance_au_ps_composition_recommended_sections_sections_should_populated'
4
+
5
+ require_relative 'au_ps_composition_recommended_sections/composition_recommended_sections_recommended_sections_entry_profiles'
6
+
7
+ module AUPSTestKit
8
+ # Automatically generated primitive group for AU PS Composition Recommended Sections
9
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionRecommendedSections < Inferno::TestGroup
10
+ title 'AU PS Composition Recommended Sections'
11
+ description 'Verify the recommended sections are correctly populated in the Composition resource'
12
+ id :suite_au_ps_bundle_instance_au_ps_composition_recommended_sections
13
+
14
+ run_as_group
15
+
16
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_recommended_sections_sections_should_populated
17
+
18
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_recommended_sections_recommended_sections_entry_profiles
19
+ end
20
+ 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 AUPSSuiteAuPsBundleInstanceAuPsCompositionSubjectMustSupportElementsShallBePopulatedIfAValueIsKnown < 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_subject_subject_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('subject')
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 AUPSSuiteAuPsBundleInstanceAuPsCompositionSubjectMustSupportIdentifierSlicesShallBePopulatedIfAValueIsKnown < 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 (i.e. ihi, dva, medicare).'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_subject_subject_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_subject_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 and the parent is populated
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionSubjectMustSupportSubelementShallBePopulatedIfAValueIsKnownAndTheParentIsPopulated < BasicTest
9
+ title 'Must Support sub-element SHALL be populated if a value is known and the parent is populated'
10
+ description 'Must Support sub-element SHALL be populated if a value is known and the parent is populated'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_subject_subject_ms_subelements_populated
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('subject')
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 Subject reference in the AU PS Composition SHALL resolve to a valid resource type (Patient).
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionSubjectSubjectReferenceInTheAuPsCompositionShallResolveToAValidResourceTypePatient < BasicTest
9
+ title 'Subject reference in the AU PS Composition SHALL resolve to a valid resource type (Patient).'
10
+ description 'Subject reference in the AU PS Composition SHALL resolve to a valid resource type (Patient).'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_subject_subject_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?('subject')
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'au_ps_composition_subject/suite_au_ps_bundle_instance_au_ps_composition_subject_subject_resource_type_is_valid'
4
+
5
+ require_relative 'au_ps_composition_subject/suite_au_ps_bundle_instance_au_ps_composition_subject_subject_ms_elements'
6
+
7
+ require_relative 'au_ps_composition_subject/suite_au_ps_bundle_instance_au_ps_composition_subject_subject_ms_subelements_populated'
8
+
9
+ require_relative 'au_ps_composition_subject/suite_au_ps_bundle_instance_au_ps_composition_subject_subject_ms_identifier_slices'
10
+
11
+ module AUPSTestKit
12
+ # Automatically generated primitive group for AU PS Composition Subject
13
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionSubject < Inferno::TestGroup
14
+ title 'AU PS Composition Subject'
15
+ description 'Verify the referenced subject is a correctly populated AU PS Patient resource.'
16
+ id :suite_au_ps_bundle_instance_au_ps_composition_subject
17
+
18
+ run_as_group
19
+
20
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_subject_subject_resource_type_is_valid
21
+
22
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_subject_subject_ms_elements
23
+
24
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_subject_subject_ms_subelements_populated
25
+
26
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_subject_subject_ms_identifier_slices
27
+ end
28
+ end
@@ -0,0 +1,24 @@
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 Undefined sections are correctly populated
8
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionUndefinedSectionsUndefinedSectionsAreCorrectlyPopulated < BasicTest
9
+ title 'Undefined sections are correctly populated'
10
+ description 'Undefined sections MAY be populated if a value is known'
11
+ id :suite_au_ps_bundle_instance_au_ps_composition_undefined_sections_sections_may_undefined
12
+
13
+ def metadata_manager
14
+ @metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
15
+ end
16
+
17
+ run do
18
+ validate_populated_undefined_sections_in_bundle(
19
+ %w[11450-4 48765-2 10160-0 11369-6 30954-2 47519-4 46264-8 42348-3 104605-1 47420-5
20
+ 11348-0 10162-6 81338-6 18776-5 29762-2 8716-3], %w[title code text]
21
+ )
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'au_ps_composition_undefined_sections/suite_au_ps_bundle_instance_au_ps_composition_undefined_sections_sections_may_undefined'
4
+
5
+ module AUPSTestKit
6
+ # Automatically generated primitive group for AU PS Composition Undefined Sections
7
+ class AUPSSuiteAuPsBundleInstanceAuPsCompositionUndefinedSections < Inferno::TestGroup
8
+ title 'AU PS Composition Undefined Sections'
9
+ description 'Verify the undefined sections are correctly populated in the AU PS Composition resource.'
10
+ id :suite_au_ps_bundle_instance_au_ps_composition_undefined_sections
11
+
12
+ optional
13
+
14
+ run_as_group
15
+
16
+ test from: :suite_au_ps_bundle_instance_au_ps_composition_undefined_sections_sections_may_undefined
17
+ end
18
+ 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
+ require_relative '../../../utils/bundle_is_valid_class'
7
+
8
+ require_relative '../../../utils/ips_bundle_is_valid_class'
9
+
10
+ module AUPSTestKit
11
+ # Automatically generated primitive test for Bundle is valid against AU PS Bundle
12
+ class AUPSSuiteAuPsBundleInstanceBundleValidationBundleIsValidAgainstAuPsBundle < BundleIsValidClass
13
+ title 'Bundle is valid against AU PS Bundle'
14
+ description 'The Bundle resource is valid against the AU PS Bundle profile using FHIR validator'
15
+ id :suite_au_ps_bundle_instance_bundle_validation_bundle_valid
16
+
17
+ def metadata_manager
18
+ @metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
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
+ require_relative '../../../utils/bundle_is_valid_class'
7
+
8
+ require_relative '../../../utils/ips_bundle_is_valid_class'
9
+
10
+ module AUPSTestKit
11
+ # Automatically generated primitive test for Bundle is valid against IPS Bundle
12
+ class AUPSSuiteAuPsBundleInstanceBundleValidationBundleIsValidAgainstIpsBundle < IpsBundleIsValidClass
13
+ title 'Bundle is valid against IPS Bundle'
14
+ description 'The Bundle resource is valid against the IPS Bundle profile using FHIR validator'
15
+ id :suite_au_ps_bundle_instance_bundle_validation_bundle_valid_ips
16
+
17
+ def metadata_manager
18
+ @metadata_manager ||= MetadataManager.new(File.expand_path('../../../metadata.yaml', __dir__))
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'bundle_validation/suite_au_ps_bundle_instance_bundle_validation_bundle_valid'
4
+
5
+ require_relative 'bundle_validation/suite_au_ps_bundle_instance_bundle_validation_bundle_valid_ips'
6
+
7
+ module AUPSTestKit
8
+ # Automatically generated primitive group for Bundle Validation
9
+ class AUPSSuiteAuPsBundleInstanceBundleValidation < Inferno::TestGroup
10
+ title 'Bundle Validation'
11
+ description 'Validates that the bundle conforms to the Bundle profiles.'
12
+ id :suite_au_ps_bundle_instance_bundle_validation
13
+
14
+ run_as_group
15
+
16
+ test from: :suite_au_ps_bundle_instance_bundle_validation_bundle_valid
17
+
18
+ test from: :suite_au_ps_bundle_instance_bundle_validation_bundle_valid_ips
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../utils/basic_test_with_url'
4
+
5
+ module AUPSTestKit
6
+ # Verify CapabilityStatement resource is valid
7
+ class AUPSCSIsValid100preview < BasicTestWithURL
8
+ title 'CapabilityStatement is valid'
9
+ description 'Verifies that the server returns a valid CapabilityStatement resource.'
10
+ id :au_ps_cs_is_valid_100preview
11
+
12
+ run do
13
+ skip_if url.blank?, 'No FHIR server specified'
14
+ fhir_get_capability_statement
15
+ scratch[:capability_statement] = resource
16
+ info "Capability Statement saved to scratch: #{scratch[:capability_statement]}"
17
+ assert_response_status(200)
18
+ assert_resource_type(:capability_statement)
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../utils/basic_test_class'
4
+ require_relative '../../utils/capability_statement_decorator'
5
+
6
+ module AUPSTestKit
7
+ # Verifies that the CapabilityStatement declares support for the required AU PS profiles.
8
+ class AUPSCSSupportsAUPSProfiles100preview < BasicTest
9
+ title 'CapabilityStatement supports AU PS Profiles'
10
+ description 'Verifies that the CapabilityStatement declares support for the required AU PS profiles.'
11
+ id :au_ps_cs_supports_au_ps_profiles_100preview
12
+
13
+ def check_profiles_status(profiles_mapping, general_message)
14
+ au_ps_profiles_status_array = profiles_mapping.keys.map do |profile_url|
15
+ "#{profiles_mapping[profile_url]} (#{profile_url}): #{cs_profiles.include?(profile_url) ? 'Yes' : 'No'}"
16
+ end.join("\n\n")
17
+ info "**#{general_message}**:\n\n#{au_ps_profiles_status_array}"
18
+ end
19
+
20
+ def cs_profiles
21
+ cs_resource = CapabilityStatementDecorator.new(scratch[:capability_statement].to_hash)
22
+ cs_resource.all_profiles
23
+ end
24
+
25
+ run do
26
+ skip_if scratch[:capability_statement].blank?, 'No CapabilityStatement resource provided'
27
+ check_profiles_status(
28
+ { 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-allergyintolerance' => 'AUPSAllergyIntolerance',
29
+ 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-bundle' => 'AUPSBundle', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-composition' => 'AUPSComposition', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-condition' => 'AUPSCondition', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-medicationrequest' => 'AUPSMedicationRequest', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-medicationstatement' => 'AUPSMedicationStatement', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-patient' => 'AUPSPatient' },
30
+ 'For each of the following AU PS profiles indicate if it is referenced as a supported profile'
31
+ )
32
+
33
+ check_profiles_status(
34
+ { 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-diagnosticresult-path' => 'AUPSPathologyResult',
35
+ 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-encounter' => 'AUPSEncounter', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-immunization' => 'AUPSImmunization', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-medication' => 'AUPSMedication', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-organization' => 'AUPSOrganization', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-practitioner' => 'AUPSPractitioner', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-practitionerrole' => 'AUPSPractitionerRole', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-procedure' => 'AUPSProcedure', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-relatedperson' => 'AUPSRelatedPerson', 'http://hl7.org.au/fhir/ps/StructureDefinition/au-ps-smokingstatus' => 'AUPSSmokingStatus' },
36
+ 'List any other AU PS profiles referenced as supported profile'
37
+ )
38
+ end
39
+ end
40
+ end