Class: CancerRegistryReportingTestKit::HdeaGenerator::ValidationTestGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(group_metadata, medication_request_metadata = nil, base_output_dir:) ⇒ ValidationTestGenerator

Returns a new instance of ValidationTestGenerator.



22
23
24
25
26
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 22

def initialize(,  = nil, base_output_dir:)
  self. = 
  self. = 
  self.base_output_dir = base_output_dir
end

Instance Attribute Details

#base_output_dirObject

Returns the value of attribute base_output_dir.



20
21
22
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 20

def base_output_dir
  @base_output_dir
end

#group_metadataObject

Returns the value of attribute group_metadata.



20
21
22
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 20

def 
  @group_metadata
end

#medication_request_metadataObject

Returns the value of attribute medication_request_metadata.



20
21
22
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 20

def 
  @medication_request_metadata
end

Class Method Details

.generate(ig_metadata, base_output_dir) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 10

def generate(, base_output_dir)
  .groups
    .reject { |group| SpecialCases::IGNORE_FOR_GENERATION.include?(group.profile_url) }
    .reject { |group| SpecialCases::IGNORE_FOR_VALIDATION.include?(group.profile_url) }
    .each do |group|
    new(group, base_output_dir: base_output_dir).generate
  end
end

Instance Method Details

#base_output_file_nameObject



36
37
38
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 36

def base_output_file_name
  "#{class_name.underscore}.rb"
end

#class_nameObject



87
88
89
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 87

def class_name
  "#{Naming.upper_camel_case_for_profile()}ValidationTest"
end

#conformance_expectationObject



99
100
101
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 99

def conformance_expectation
  read_interaction[:expectation]
end

#directory_nameObject



48
49
50
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 48

def directory_name
  Naming.snake_case_for_profile( || )
end

#generateObject



109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 109

def generate
  File.write(output_file_name, output)

   = {
    id: test_id,
    file_name: base_output_file_name
  }

  # if resource_type == 'Medication'
  #   medication_request_metadata.add_test(**test_metadata)
  # else
  .add_test(**)
  # end
end

#module_nameObject



91
92
93
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 91

def module_name
  "HDEA#{.reformatted_version.upcase}"
end

#outputObject



32
33
34
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 32

def output
  @output ||= ERB.new(template).result(binding)
end

#output_file_directoryObject



40
41
42
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 40

def output_file_directory
  File.join(base_output_dir, profile_identifier)
end

#output_file_nameObject



44
45
46
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 44

def output_file_name
  File.join(output_file_directory, base_output_file_name)
end

#profile_identifierObject



52
53
54
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 52

def profile_identifier
  Naming.snake_case_for_profile()
end


79
80
81
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 79

def profile_link
  "#{profile_url}|#{profile_version}"
end

#profile_nameObject



71
72
73
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 71

def profile_name
  "#{.profile_name.chomp(' Profile')} profile"
end

#profile_urlObject



67
68
69
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 67

def profile_url
  .profile_url
end

#profile_versionObject



75
76
77
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 75

def profile_version
  .profile_version
end

#resource_typeObject



95
96
97
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 95

def resource_type
  .resource
end

#section_nameObject



56
57
58
59
60
61
62
63
64
65
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 56

def section_name
  raw = Naming.section_for_profile_url(profile_url)&.chomp('s')
  return unless raw.present?

  if raw.include?('element')
    "referenced in the #{raw}s"
  else
    "found in the #{raw}s"
  end
end

#skip_if_emptyObject



103
104
105
106
107
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 103

def skip_if_empty
  # Return true if a system must demonstrate at least one example of the resource type.
  # This drives omit vs. skip result statuses in this test.
  resource_type != 'Medication'
end

#templateObject



28
29
30
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 28

def template
  @template ||= File.read(File.join(__dir__, 'templates', 'validation.rb.erb'))
end

#test_idObject



83
84
85
# File 'lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb', line 83

def test_id
  "ccrr_#{.reformatted_version}_#{profile_identifier}_validation_test"
end