Class: DaVinciPASTestKit::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/davinci_pas_test_kit/generator.rb,
lib/davinci_pas_test_kit/generator/ig_loader.rb,
lib/davinci_pas_test_kit/generator/ig_metadata.rb,
lib/davinci_pas_test_kit/generator/descriptions.rb,
lib/davinci_pas_test_kit/generator/ig_resources.rb,
lib/davinci_pas_test_kit/generator/profile_metadata.rb,
lib/davinci_pas_test_kit/generator/ig_metadata_extractor.rb,
lib/davinci_pas_test_kit/generator/server_suite_generator.rb,
lib/davinci_pas_test_kit/generator/use_case_group_generator.rb,
lib/davinci_pas_test_kit/generator/profile_metadata_extractor.rb,
lib/davinci_pas_test_kit/generator/must_support_test_generator.rb,
lib/davinci_pas_test_kit/generator/must_support_target_profiles.rb,
lib/davinci_pas_test_kit/generator/client_must_support_group_generator.rb,
lib/davinci_pas_test_kit/generator/server_must_support_group_generator.rb,
lib/davinci_pas_test_kit/generator/terminology_binding_metadata_extractor.rb

Defined Under Namespace

Modules: Descriptions, MustSupportTargetProfiles Classes: ClientMustSupportGroupGenerator, IGLoader, IGMetadata, IGMetadataExtractor, IGResources, MustSupportTestGenerator, ProfileMetadata, ProfileMetadataExtractor, ServerMustSupportGroupGenerator, ServerSuiteGenerator, TerminologyBindingMetadataExtractor, UseCaseGroupGenerator

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ig_file_name) ⇒ Generator

Returns a new instance of Generator.



23
24
25
# File 'lib/davinci_pas_test_kit/generator.rb', line 23

def initialize(ig_file_name)
  self.ig_file_name = ig_file_name
end

Instance Attribute Details

#ig_file_nameObject

Returns the value of attribute ig_file_name.



21
22
23
# File 'lib/davinci_pas_test_kit/generator.rb', line 21

def ig_file_name
  @ig_file_name
end

#ig_metadataObject

Returns the value of attribute ig_metadata.



21
22
23
# File 'lib/davinci_pas_test_kit/generator.rb', line 21

def 
  @ig_metadata
end

#ig_resourcesObject

Returns the value of attribute ig_resources.



21
22
23
# File 'lib/davinci_pas_test_kit/generator.rb', line 21

def ig_resources
  @ig_resources
end

Class Method Details

.generateObject



13
14
15
16
17
18
19
# File 'lib/davinci_pas_test_kit/generator.rb', line 13

def self.generate
  ig_packages = Dir.glob(File.join(Dir.pwd, 'lib', 'davinci_pas_test_kit', 'igs', '*.tgz'))

  ig_packages.each do |ig_package|
    new(ig_package).generate
  end
end

Instance Method Details

#base_client_output_dirObject



61
62
63
# File 'lib/davinci_pas_test_kit/generator.rb', line 61

def base_client_output_dir
  File.join(__dir__, 'client', 'generated', .ig_version)
end

#base_server_output_dirObject



57
58
59
# File 'lib/davinci_pas_test_kit/generator.rb', line 57

def base_server_output_dir
  File.join(__dir__, 'server', 'generated', .ig_version)
end

#base_shared_output_dirObject



53
54
55
# File 'lib/davinci_pas_test_kit/generator.rb', line 53

def base_shared_output_dir
  File.join(__dir__, 'cross_suite', 'generated', .ig_version)
end

#extract_metadataObject



46
47
48
49
50
51
# File 'lib/davinci_pas_test_kit/generator.rb', line 46

def 
  self. = IGMetadataExtractor.new(ig_resources).extract

  FileUtils.mkdir_p(base_shared_output_dir)
  File.write(File.join(base_shared_output_dir, 'metadata.yml'), YAML.dump(.to_hash))
end

#generateObject



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/davinci_pas_test_kit/generator.rb', line 27

def generate
  puts "Generating tests for IG #{File.basename(ig_file_name)}"
  load_ig_package
  
  FileUtils.mkdir_p(base_server_output_dir)
  FileUtils.mkdir_p(base_client_output_dir)
  generate_must_support_tests
  generate_use_case_groups
  generate_server_must_support_groups
  generate_client_must_support_groups
  generate_server_suite
  
end

#generate_client_must_support_groupsObject



77
78
79
# File 'lib/davinci_pas_test_kit/generator.rb', line 77

def generate_client_must_support_groups
  ClientMustSupportGroupGenerator.generate(, base_client_output_dir)
end

#generate_must_support_testsObject



65
66
67
# File 'lib/davinci_pas_test_kit/generator.rb', line 65

def generate_must_support_tests
  MustSupportTestGenerator.generate(, base_server_output_dir, base_client_output_dir)
end

#generate_server_must_support_groupsObject



73
74
75
# File 'lib/davinci_pas_test_kit/generator.rb', line 73

def generate_server_must_support_groups
  ServerMustSupportGroupGenerator.generate(, base_server_output_dir)
end

#generate_server_suiteObject



81
82
83
# File 'lib/davinci_pas_test_kit/generator.rb', line 81

def generate_server_suite
  ServerSuiteGenerator.generate(, base_server_output_dir)
end

#generate_use_case_groupsObject



69
70
71
# File 'lib/davinci_pas_test_kit/generator.rb', line 69

def generate_use_case_groups
  UseCaseGroupGenerator.generate(, base_server_output_dir)
end

#load_ig_packageObject



41
42
43
44
# File 'lib/davinci_pas_test_kit/generator.rb', line 41

def load_ig_package
  FHIR.logger = Logger.new(File::NULL)
  self.ig_resources = IGLoader.new(ig_file_name).load
end

#write_profile_metadataObject



85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/davinci_pas_test_kit/generator.rb', line 85

def 
  # metadata files
   = .profiles.select do ||
    MustSupportTargetProfiles.submit_request_profile?() ||
      MustSupportTargetProfiles.submit_response_profile?() ||
      MustSupportTargetProfiles.inquire_request_profile?() ||
      MustSupportTargetProfiles.inquire_response_profile?()
  end
  .each do ||
     = File.join(base_shared_output_dir, .snake_case_for_profile())
    FileUtils.mkdir_p()
    File.write(File.join(, 'metadata.yml'), YAML.dump(.to_hash))
  end
end