Class: AUCoreTestKit::Generator::IncludeSearchTestGenerator

Inherits:
SearchTestGenerator show all
Defined in:
lib/au_core_test_kit/generator/include_search_test_generator.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from SearchTestGenerator

#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(, , base_output_dir, include_param)
  self. = 
  self. = 
  self.base_output_dir = base_output_dir
  self.include_param = include_param
end

Instance Attribute Details

#base_output_dirObject

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

#group_metadataObject

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 
  
end

#include_paramObject

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

#search_metadataObject

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 
  
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(, base_output_dir)
  .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_nameObject



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

#conformance_expectationObject



56
57
58
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 56

def conformance_expectation
  'SHOULD'
end

#descriptionObject



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_stringObject



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

Returns:

  • (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

Returns:

  • (Boolean)


60
61
62
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 60

def optional?
  true
end

#search_identifierObject



40
41
42
# File 'lib/au_core_test_kit/generator/include_search_test_generator.rb', line 40

def search_identifier
  [:names].join('_').tr('-', '_')
end

#search_methodObject



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_stringObject



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_stringObject



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_propertiesObject



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 .include_params.present?
    properties[:use_any_data_for_search] = true
  end
end

#search_titleObject



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_stringObject



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

#templateObject



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_idObject



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

#titleObject



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