class Crucible::Tests::SuiteEngine
Public Class Methods
generate_metadata()
click to toggle source
# File lib/tests/suites/suite_engine.rb, line 78 def self.generate_metadata metadata = {} puts "---" puts "BUILDING METADATA" puts "---" SuiteEngine.new.tests.each do |test| test_file = Crucible::Tests.const_get(test).new(nil) if test_file.respond_to? 'resource_class=' Crucible::Tests::BaseSuite.fhir_resources.each do |klass| test_file.resource_class = Module.const_get("FHIR::#{klass}") puts "---" puts "BUILDING METADATA - #{test}#{klass}" puts "---" metadata["#{test}#{klass}"] = test_file.collect_metadata(true) end else puts "---" puts "BUILDING METADATA - #{test}" puts "---" metadata[test] = test_file.collect_metadata(true) end end puts "---" puts "FINISHED METADATA" puts "---" metadata end
list_all(metadata=false)
click to toggle source
# File lib/tests/suites/suite_engine.rb, line 23 def self.list_all(metadata=false) list = {} # FIXME: Organize defaults between instance & class methods SuiteEngine.new.tests.each do |test| test_class = test.class.name.demodulize #if t can set class if test.respond_to? 'resource_class=' Crucible::Tests::BaseSuite.fhir_resources.each do |klass| test.resource_class = Module.const_get("FHIR::#{klass}") list["#{test_class}#{klass}"] = {} list["#{test_class}#{klass}"]['resource_class'] = klass BaseTest::JSON_FIELDS.each {|field| list["#{test_class}#{klass}"][field] = test.send(field)} if metadata test_metadata = test.collect_metadata(true) BaseTest::METADATA_FIELDS.each do |field| field_hash = {} test_metadata.each { |tm| field_hash[tm[:test_method]] = tm[field] } list["#{test_class}#{klass}"][field] = field_hash end end end else list[test.title] = {} BaseTest::JSON_FIELDS.each {|field| list[test.title][field] = test.send(field)} if metadata test_metadata = test.collect_metadata(true) BaseTest::METADATA_FIELDS.each do |field| field_hash = {} test_metadata.each { |tm| field_hash[tm[:test_method]] = tm[field] } list[test.title][field] = field_hash end end end end list end
new(client=nil, client2=nil)
click to toggle source
# File lib/tests/suites/suite_engine.rb, line 5 def initialize(client=nil, client2=nil) @client = client @client2 = client2 build_suites_map end
Public Instance Methods
build_suites_map()
click to toggle source
# File lib/tests/suites/suite_engine.rb, line 71 def build_suites_map @suites = {} (Crucible::Tests.constants.grep(/Test$/) - [:BaseTest]).each do |suite| @suites[suite] = Crucible::Tests.const_get(suite) end end
find_test(key)
click to toggle source
Use the built test suites to find a given test suite
# File lib/tests/suites/suite_engine.rb, line 67 def find_test(key) @suites[key.to_sym].new(@client, @client2) if @suites.keys.include?(key.to_sym) end
metadata(test)
click to toggle source
# File lib/tests/suites/suite_engine.rb, line 11 def metadata(test) Crucible::Tests.const_get(test).new(@client).collect_metadata end
metadata_all()
click to toggle source
# File lib/tests/suites/suite_engine.rb, line 15 def metadata_all results = [] tests.each do |test| results = results.concat metadata(test) end results end
tests()
click to toggle source
Build all the test suites if none exist, but only reference the class
# File lib/tests/suites/suite_engine.rb, line 61 def tests # return newly-initialized copies of the tests @suites.values.map {|suite| suite.new(@client, @client2)} end