Class: DaVinciDTRTestKit::FixtureLoader
- Inherits:
-
Object
- Object
- DaVinciDTRTestKit::FixtureLoader
- Includes:
- Singleton
- Defined in:
- lib/davinci_dtr_test_kit/full_ehr/fixture_loader.rb
Instance Method Summary collapse
- #[](path) ⇒ Object
-
#initialize ⇒ FixtureLoader
constructor
A new instance of FixtureLoader.
Constructor Details
#initialize ⇒ FixtureLoader
Returns a new instance of FixtureLoader.
8 9 10 |
# File 'lib/davinci_dtr_test_kit/full_ehr/fixture_loader.rb', line 8 def initialize @cache = {} end |
Instance Method Details
#[](path) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/davinci_dtr_test_kit/full_ehr/fixture_loader.rb', line 12 def [](path) return unless path.present? return @cache[path] if @cache.key?(path) fixture_path = File.join(__dir__, 'fixtures', path) begin fhir_instance = FHIR.from_contents(File.read(fixture_path)) rescue Errno::ENOENT raise Inferno::Exceptions::TestSuiteImplementationException.new('FixtureLoader', "File not found: #{fixture_path}") rescue JSON::ParserError => e raise Inferno::Exceptions::TestSuiteImplementationException.new('FixtureLoader', "Invalid JSON in #{fixture_path}: #{e.message}") end if fhir_instance.nil? raise Inferno::Exceptions::TestSuiteImplementationException.new( 'FixtureLoader', "#{fixture_path} does not contain a valid FHIR resource." ) end @cache[path] = fhir_instance end |