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