Class: USCoreTestKit::Generator::ReadTestGenerator
- Inherits:
-
Object
- Object
- USCoreTestKit::Generator::ReadTestGenerator
show all
- Defined in:
- lib/us_core_test_kit/generator/read_test_generator.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(group_metadata, base_output_dir) ⇒ ReadTestGenerator
Returns a new instance of ReadTestGenerator.
22
23
24
25
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 22
def initialize(group_metadata, base_output_dir)
self.group_metadata = group_metadata
self.base_output_dir = base_output_dir
end
|
Instance Attribute Details
#base_output_dir ⇒ Object
Returns the value of attribute base_output_dir.
20
21
22
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 20
def base_output_dir
@base_output_dir
end
|
Returns the value of attribute group_metadata.
20
21
22
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 20
def group_metadata
@group_metadata
end
|
Class Method Details
.generate(ig_metadata, base_output_dir) ⇒ Object
8
9
10
11
12
13
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 8
def generate(ig_metadata, base_output_dir)
ig_metadata.groups
.reject { |group| SpecialCases.exclude_group? group }
.select { |group| read_interaction(group).present? }
.each { |group| new(group, base_output_dir).generate }
end
|
.read_interaction(group_metadata) ⇒ Object
15
16
17
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 15
def read_interaction(group_metadata)
group_metadata.interactions.find { |interaction| interaction[:code] == 'read' }
end
|
Instance Method Details
#base_output_file_name ⇒ Object
35
36
37
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 35
def base_output_file_name
"#{class_name.underscore}.rb"
end
|
79
80
81
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 79
def conformance_expectation
read_interaction[:expectation]
end
|
#generate ⇒ Object
83
84
85
86
87
88
89
90
91
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 83
def generate
FileUtils.mkdir_p(output_file_directory)
File.write(output_file_name, output)
group_metadata.add_test(
id: test_id,
file_name: base_output_file_name
)
end
|
#module_name ⇒ Object
63
64
65
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 63
def module_name
"USCore#{group_metadata.reformatted_version.upcase}"
end
|
#output ⇒ Object
31
32
33
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 31
def output
@output ||= ERB.new(template).result(binding)
end
|
#output_file_directory ⇒ Object
39
40
41
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 39
def output_file_directory
File.join(base_output_dir, profile_identifier)
end
|
#output_file_name ⇒ Object
43
44
45
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 43
def output_file_name
File.join(output_file_directory, base_output_file_name)
end
|
#profile_identifier ⇒ Object
51
52
53
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 51
def profile_identifier
Naming.snake_case_for_profile(group_metadata)
end
|
#read_interaction ⇒ Object
47
48
49
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 47
def read_interaction
self.class.read_interaction(group_metadata)
end
|
#resource_collection_string ⇒ Object
71
72
73
74
75
76
77
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 71
def resource_collection_string
if group_metadata.delayed? && resource_type != 'Provenance'
"scratch.dig(:references, '#{resource_type}'), delayed_reference: true"
else
'all_scratch_resources'
end
end
|
#resource_type ⇒ Object
67
68
69
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 67
def resource_type
group_metadata.resource
end
|
#template ⇒ Object
27
28
29
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 27
def template
@template ||= File.read(File.join(__dir__, 'templates', 'read.rb.erb'))
end
|
#test_id ⇒ Object
55
56
57
|
# File 'lib/us_core_test_kit/generator/read_test_generator.rb', line 55
def test_id
"us_core_#{group_metadata.reformatted_version}_#{profile_identifier}_read_test"
end
|