Class: Inferno::Entities::Test

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
DSL
Defined in:
lib/inferno/entities/test.rb

Constant Summary

Constants included from DSL

DSL::EXTENDABLE_DSL_MODULES, DSL::INCLUDABLE_DSL_MODULES

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name) ⇒ Object



47
48
49
50
51
52
53
54
# File 'lib/inferno/entities/test.rb', line 47

def method_missing(name, ...)
  parent_instance = self.class.parent&.new
  if parent_instance.respond_to?(name)
    parent_instance.send(name, ...)
  else
    super
  end
end

Instance Attribute Details

#result_messageObject

Returns the value of attribute result_message.



13
14
15
# File 'lib/inferno/entities/test.rb', line 13

def result_message
  @result_message
end

#scratchObject (readonly)

Returns the value of attribute scratch.



14
15
16
# File 'lib/inferno/entities/test.rb', line 14

def scratch
  @scratch
end

#suite_optionsObject (readonly)

Returns the value of attribute suite_options.



14
15
16
# File 'lib/inferno/entities/test.rb', line 14

def suite_options
  @suite_options
end

#test_session_idObject (readonly)

Returns the value of attribute test_session_id.



14
15
16
# File 'lib/inferno/entities/test.rb', line 14

def test_session_id
  @test_session_id
end

Class Method Details

.input(name, *other_names, **input_params) ⇒ void

This method returns an undefined value.

Define inputs for this Test

Examples:

input :patientid, title: 'Patient ID', description: 'The ID of the patient being searched for'
input :textarea, title: 'Textarea Input Example', type: 'textarea'

Parameters:

  • name (Symbol)

    name of the input

  • other_names (Symbol)

    array of symbols if specifying multiple inputs

  • input_params (Hash)

    options for input such as type, description, or title

Options Hash (**input_params):

  • :title (String)

    Human readable title for input

  • :description (String)

    Description for the input

  • :type (String)
    ‘text’ ‘textarea’


75
76
77
78
79
80
81
82
83
# File 'lib/inferno/entities/test.rb', line 75

def input(name, *other_names, **input_params)
  super

  if other_names.present?
    [name, *other_names].each { |input| attr_reader input }
  else
    attr_reader name
  end
end

.output(*output_definitions, **_output_params) ⇒ void

This method returns an undefined value.

Define outputs for this Test

Examples:

output :patient_id, :bearer_token

Parameters:

  • output_definitions (Symbol)
  • _output_params (Hash)

    Unused parameter. Just makes method signature compatible with Inferno::DSL::InputOutputHandling.output



93
94
95
96
97
98
99
# File 'lib/inferno/entities/test.rb', line 93

def output(*output_definitions, **_output_params)
  super

  output_definitions.each do |output|
    attr_accessor output
  end
end

.short_idObject



106
107
108
109
110
111
112
# File 'lib/inferno/entities/test.rb', line 106

def short_id
  @short_id ||= begin
    prefix = parent.respond_to?(:short_id) ? "#{parent.short_id}." : ''
    suffix = parent ? (parent.tests.find_index(self) + 1).to_s.rjust(2, '0') : 'x'
    "#{prefix}#{suffix}"
  end
end

Instance Method Details

#output(outputs) ⇒ void

This method returns an undefined value.

Set output values. Once set, these values will be available to any subsequent tests.

Examples:

output(patient_id: '5', bearer_token: 'ABC')

Parameters:

  • outputs (Hash)


31
32
33
34
35
36
# File 'lib/inferno/entities/test.rb', line 31

def output(outputs)
  outputs.each do |key, value|
    send("#{key}=", value)
    outputs_to_persist[key] = value
  end
end