Sha256: 7ae5be9613abad5cf3742c05f44eabe41c0fda876351453e6a4e700a92ccb993
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
require_relative '../test_helper' class FixturesTest < Test::Unit::TestCase ERROR_DIR = File.join('tmp', 'errors', 'FixturesTest') # Create a blank folder for the errors FileUtils.rm_rf(ERROR_DIR) if File.directory?(ERROR_DIR) FileUtils.mkdir_p ERROR_DIR fixtures = File.join('fixtures','**','*.xml') raise 'No Fixture Files Found' if Dir[fixtures].empty? # Define test methods to validate example JSON Dir.glob(fixtures).each do | file | basename = File.basename(file,'.xml') next if basename.start_with?('ccda') xml = File.open(file, 'r:bom|UTF-8', &:read) define_method("test_fixture_validation_#{basename}") do run_validate(basename,xml) end end def run_validate(fixture,xml) assert(fixture && xml) r = FHIR::Xml.from_xml(xml) assert(!r.nil?,"XML fixture does not deserialize.") errors = FHIR::Xml.validate(xml) if !errors.empty? File.open("#{ERROR_DIR}/#{fixture}.err", 'w:UTF-8') do |file| file.write "#{fixture}: #{errors.length} errors\n\n" errors.each do |error| file.write(sprintf("%-8d %s\n", error.line, error.message)) end end File.open("#{ERROR_DIR}/#{fixture}.xml", 'w:UTF-8') { |file| file.write(xml) } end assert(errors.empty?,"XML fixture does not conform to schema.") # TODO Add StructureDefinition validation. end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
plan_executor-1.8.0 | test/unit/fixtures_test.rb |