class Crucible::Tests::SearchTest
Attributes
canSearchById[R]
conformance[RW]
resource_class[RW]
searchParams[RW]
Public Class Methods
new(client1, client2=nil)
click to toggle source
Calls superclass method
Crucible::Tests::BaseTest::new
# File lib/tests/suites/search_test.rb, line 39 def initialize(client1, client2=nil) super(client1, client2) end
Public Instance Methods
category()
click to toggle source
# File lib/tests/suites/search_test.rb, line 34 def category resource = @resource_class.nil? ? "Uncategorized" : resource_category(@resource_class.name.demodulize) {id: "search_#{resource.parameterize}", title: "#{resource} Search"} end
define_metadata(method)
click to toggle source
# File lib/tests/suites/search_test.rb, line 213 def define_metadata(method) links "#{REST_SPEC_LINK}##{method}" links "#{BASE_SPEC_LINK}/#{resource_class.name.demodulize.downcase}.html" validates resource: resource_class.name.demodulize, methods: [method] end
description()
click to toggle source
# File lib/tests/suites/search_test.rb, line 30 def description "Execute suite of searches for #{resource_class.name.demodulize} resources." end
execute(resource_class=nil)
click to toggle source
# File lib/tests/suites/search_test.rb, line 10 def execute(resource_class=nil) if resource_class @resource_class = resource_class {"SearchTest_#{@resource_class.name.demodulize}" => execute_test_methods} else results = {} Crucible::Tests::BaseSuite.fhir_resources.each do | klass | @resource_class = klass results.merge!({"SearchTest_#{@resource_class.name.demodulize}" => execute_test_methods}) end results end end
id()
click to toggle source
# File lib/tests/suites/search_test.rb, line 24 def id suffix = resource_class suffix = resource_class.name.demodulize if !resource_class.nil? "SearchTest_#{suffix}" end
result_id_suffix()
click to toggle source
this allows results to have unique ids for resource based tests
# File lib/tests/suites/search_test.rb, line 44 def result_id_suffix resource_class.name.demodulize end
setup()
click to toggle source
Search Test
-
First, get the conformance statement.
-
Lookup the allowed search parameters for each resource.
-
Perform suite of tests against each resource.
# File lib/tests/suites/search_test.rb, line 58 def setup @conformance = @client.conformance_statement if @conformance.nil? @canSearchById = false unless @conformance.nil? @conformance.rest.each do |rest| rest.resource.each do |resource| @searchParams = resource.searchParam if(resource.type.downcase == "#{@resource_class.name.demodulize.downcase}" ) end end end index = @searchParams.find_index {|item| item.name=="_id" } if !@searchParams.nil? @canSearchById = !index.nil? end
supplement_test_description(desc)
click to toggle source
# File lib/tests/suites/search_test.rb, line 48 def supplement_test_description(desc) "#{desc} #{resource_class.name.demodulize}" end