class Crucible::Tests::HistoryTest
Public Class Methods
new(client1, client2=nil)
click to toggle source
Calls superclass method
Crucible::Tests::BaseTest::new
# File lib/tests/suites/history_test.rb, line 13 def initialize(client1, client2=nil) super(client1, client2) @category = {id: 'core_functionality', title: 'Core Functionality'} end
Public Instance Methods
active_entries(entries)
click to toggle source
# File lib/tests/suites/history_test.rb, line 281 def active_entries(entries) entries - deleted_entries(entries) end
check_sort_order(entries)
click to toggle source
# File lib/tests/suites/history_test.rb, line 298 def check_sort_order(entries) relevant_entries = entries.select{|x|x.request.try(:local_method)!='DELETE'} relevant_entries.map!(&:resource).map!(&:meta).compact rescue assert(false, 'Unable to find meta for resources returned by the bundle') relevant_entries.each_cons(2) do |left, right| if !left.versionId.nil? && !right.versionId.nil? assert (left.versionId > right.versionId), 'Result contains entries in the wrong order.' elsif !left.lastUpdated.nil? && !right.lastUpdated.nil? assert (left.lastUpdated >= right.lastUpdated), 'Result contains entries in the wrong order.' else raise AssertionException.new 'Unable to determine if entries are in the correct order -- no meta.versionId or meta.lastUpdated' end end end
deleted_entries(entries)
click to toggle source
Check sice with timezones?????
# File lib/tests/suites/history_test.rb, line 274 def deleted_entries(entries) entries.select do |entry| assert !entry.request.nil?, "history bundle entries do not have request elements, deleted entries cannot be distinguished" entry.request.try(:local_method) == "DELETE" end end
description()
click to toggle source
# File lib/tests/suites/history_test.rb, line 9 def description 'Initial Sprinkler tests (HI01,HI02,HI03,HI04,HI05,HI06,HI07,HI08,HI09,HI10,HI11) for testing resource history requests.' end
entry_ids_are_present(entries)
click to toggle source
# File lib/tests/suites/history_test.rb, line 286 def entry_ids_are_present(entries) relevant_entries = entries.select{|x|x.request.try(:local_method)!='DELETE'} ids = relevant_entries.map(&:resource).map(&:id).compact rescue assert(false, 'Unable to find IDs for resources returned by the bundle') # check that we have ids and self links assert_equal relevant_entries.length, ids.size, 'All PUT and POST entries must have an ID' end
id()
click to toggle source
# File lib/tests/suites/history_test.rb, line 5 def id 'History001' end
setup()
click to toggle source
# File lib/tests/suites/history_test.rb, line 18 def setup begin @resources = Crucible::Generator::Resources.new response = @client.create(@resources.minimal_patient) assert_response_ok(response) @patient = response.resource @patient_created = true @create_date = Time.now.utc @version = [] @version << @client.reply.version @patient.telecom ||= [] @patient.telecom << FHIR::ContactPoint.new.from_hash(system: 'email', value: 'foo@example.com') @patient.update @version << @client.reply.version @patient.destroy assert_response_code(@client.reply,204) @entry_count = @version.length # add one for deletion @version_count = @entry_count + 1 @patient_setup = true rescue Exception => e @patient_setup = false @create_date = Time.now.utc end end
teardown()
click to toggle source
# File lib/tests/suites/history_test.rb, line 48 def teardown ignore_client_exception { @patient.destroy if @patient_created } end
url?(v)
click to toggle source
# File lib/tests/suites/history_test.rb, line 294 def url?(v) v =~ /\A#{URI::regexp}\z/ end