class CancerRegistryReportingTestKit::HdeaGenerator

def self.generate

def self.generate
  ig_packages = Dir.glob(File.join(Dir.pwd, 'lib', 'cancer_registry_reporting_test_kit', 'igs', '*.tgz'))
  ig_packages.each do |ig_package|
    new(ig_package).generate
  end
end

def base_output_dir

def base_output_dir
  File.join(__dir__, 'hdea_suite', 'generated', ig_metadata.ig_version)
end

def extract_metadata

def extract_metadata
  self.ig_metadata = IGMetadataExtractor.new(ig_resources).extract
  FileUtils.mkdir_p(base_output_dir)
end

def generate

def generate
  puts "Generating tests for IG #{File.basename(ig_file_name)}"
  load_ig_package
  extract_metadata
  generate_must_support_tests
  generate_validation_tests
  generate_groups
end

def generate_groups

def generate_groups
  # SpecialCases.move_ms_and_validation(ig_metadata)
  GroupGenerator.generate(ig_metadata, base_output_dir)
end

def generate_must_support_tests

def generate_must_support_tests
  MustSupportTestGenerator.generate(ig_metadata, base_output_dir)
end

def generate_validation_tests

def generate_validation_tests
  ValidationTestGenerator.generate(ig_metadata, base_output_dir)
end

def initialize(ig_file_name)

def initialize(ig_file_name)
  self.ig_file_name = ig_file_name
end

def load_ig_package

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