Class: AUCoreTestKit::Generator::IncludeSearchTestGenerator
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#array_of_strings, #base_output_file_name, #first_search?, #first_search_description, #first_search_for_patient_by_patient_id, #fixed_value_search?, #fixed_value_search_param_name, #generate, #includes, #medication_inclusion_description, #module_name, #optional_multiple_and_search_params, #optional_multiple_and_search_params_string, #optional_multiple_or_search_params, #optional_multiple_or_search_params_string, #output, #output_file_directory, #output_file_name, #path_for_value, #possible_status_search?, #post_search_description, #profile_identifier, #reference_search_description, #required_comparators, #required_comparators_for_param, #required_comparators_string, #required_multiple_and_search_params, #required_multiple_and_search_params_string, #required_multiple_or_search_params, #required_multiple_or_search_params_string, #resource_type, #saves_delayed_references?, #search_definition, #search_param_name_string, #search_param_names, #search_param_names_array, #search_params, #search_test_properties_string, #test_medication_inclusion?, #test_post_search?, #test_reference_variants?, #token_search_params, #token_search_params_string, #url_version
Constructor Details
#initialize(group_metadata, search_metadata, base_output_dir, include_param) ⇒ IncludeSearchTestGenerator
Returns a new instance of IncludeSearchTestGenerator.
29
30
31
32
33
34
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 29
def initialize(group_metadata, search_metadata, base_output_dir, include_param)
self.group_metadata = group_metadata
self.search_metadata = search_metadata
self.base_output_dir = base_output_dir
self.include_param = include_param
end
|
Instance Attribute Details
#base_output_dir ⇒ Object
Returns the value of attribute base_output_dir.
27
28
29
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 27
def base_output_dir
@base_output_dir
end
|
Returns the value of attribute group_metadata.
27
28
29
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 27
def group_metadata
@group_metadata
end
|
#include_param ⇒ Object
Returns the value of attribute include_param.
27
28
29
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 27
def include_param
@include_param
end
|
Returns the value of attribute search_metadata.
27
28
29
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 27
def search_metadata
@search_metadata
end
|
Class Method Details
.generate(ig_metadata, base_output_dir) ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 11
def generate(ig_metadata, base_output_dir)
ig_metadata.groups
.reject { |group| SpecialCases.exclude_group? group }
.select { |group| group.include_params.present? }
.each do |group|
group.searches.each do |search|
next unless SpecialCases.search_params_for_include_by_resource[group.resource].include? search[:names]
group.include_params.each do |include_param|
new(group, search, base_output_dir, include_param).generate
end
end
end
end
|
Instance Method Details
#class_name ⇒ Object
52
53
54
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 52
def class_name
"#{Naming.upper_camel_case_for_profile(group_metadata)}#{search_title}Include#{includes.first['target_resource']}Test"
end
|
56
57
58
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 56
def conformance_expectation
'SHOULD'
end
|
#description ⇒ Object
98
99
100
101
102
103
104
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 98
def description
" This test will perform a search by \#{search_param_names_string} and the _include=\#{include_params_string}\n\n Test will pass if a \#{target_resources_string} resources are found in the response.\n DESCRIPTION\nend\n".gsub(/\n{3,}/, "\n\n")
|
#include_params_string ⇒ Object
82
83
84
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 82
def include_params_string
includes.map { |include| include['parameter'] }.join(', ')
end
|
#needs_patient_id? ⇒ Boolean
64
65
66
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 64
def needs_patient_id?
true
end
|
#optional? ⇒ Boolean
60
61
62
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 60
def optional?
true
end
|
#search_identifier ⇒ Object
40
41
42
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 40
def search_identifier
search_metadata[:names].join('_').tr('-', '_')
end
|
#search_method ⇒ Object
106
107
108
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 106
def search_method
'run_include_test'
end
|
#search_param_names_lodash_string ⇒ Object
90
91
92
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 90
def search_param_names_lodash_string
search_param_names.join('_')
end
|
#search_param_names_string ⇒ Object
86
87
88
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 86
def search_param_names_string
search_param_names.join(', ')
end
|
#search_properties ⇒ Object
68
69
70
71
72
73
74
75
76
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 68
def search_properties
{}.tap do |properties|
properties[:resource_type] = "'#{resource_type}'"
properties[:saves_delayed_references] = 'true' if saves_delayed_references?
properties[:search_param_names] = search_param_names_array
properties[:includes] = includes if group_metadata.include_params.present?
properties[:use_any_data_for_search] = true
end
end
|
#search_title ⇒ Object
48
49
50
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 48
def search_title
search_identifier.camelize
end
|
#target_resources_string ⇒ Object
78
79
80
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 78
def target_resources_string
includes.map { |include| include['target_resource'] }.join(', ')
end
|
#template ⇒ Object
36
37
38
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 36
def template
@template ||= File.read(File.join(__dir__, 'templates', 'include.rb.erb'))
end
|
#test_id ⇒ Object
44
45
46
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 44
def test_id
"au_core_#{group_metadata.reformatted_version}_#{profile_identifier}_#{search_param_names_lodash_string}_include_#{search_identifier.downcase}_search_test"
end
|
#title ⇒ Object
94
95
96
|
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 94
def title
"Server returns #{target_resources_string} resources from #{resource_type} search by #{search_param_names_string} and #{include_params_string}"
end
|