Sha256: fbdb4d697721d10a8e192dd0bb888c1057459ce807427e32d846bc1ab9062dd0

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

require_relative '../test_helper'

class FixturesTest < Test::Unit::TestCase

  fixtures = File.join('fixtures','**','*.xml')

  loading = true
  t = Thread.new { FHIR::StructureDefinition.load_definitions; loading = false }

  print 'Loading StructuredDefinitions'
  while loading do
    print '.'
    sleep(10)
  end
  print " done.\n"

  # Define test methods to validate example JSON
  Dir.glob(fixtures).each do | file |    
    basename = File.basename(file,'.xml')
    xml = File.open(file, 'r:bom|UTF-8', &:read)

    define_method("test_fixture_validation_#{basename}") do
      run_validate(file,xml)
    end
  end

  def run_validate(file,xml)
    assert(file && xml)

    r = FHIR::Resource.from_contents(xml)
    # assert(r.valid?,"#{r.errors.messages}")

    root_element = Nokogiri::XML(xml).root.try(:name)      
    definition = FHIR::StructureDefinition.get_base_definition(root_element)
    assert(definition)
    
    valid = definition.is_valid?(xml,'XML')
    assert(valid,"XML fixture does not conform to definition: #{definition.name}")

    resource = FHIR::Resource.from_contents(xml)
    valid = definition.is_valid?(resource)
    assert(valid,"Resource does not conform to definition: #{definition.name}")    
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
plan_executor-1.0.2 test/unit/fixtures_test.rb