Class: ApiMiniTester::TestScenario

Inherits:
Object
  • Object
show all
Defined in:
lib/api_mini_tester/test_scenario.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_uri, scenario, data, defaults) ⇒ TestScenario

Returns a new instance of TestScenario.



8
9
10
11
12
13
14
15
# File 'lib/api_mini_tester/test_scenario.rb', line 8

def initialize(base_uri, scenario, data, defaults)
  @base_uri = base_uri
  @scenario = scenario
  @data = data
  @name = scenario['name']
  @defaults = defaults
  @results = {name: @name, desc: scenario['desc'], steps: []}
end

Instance Attribute Details

#base_uriObject (readonly)

Returns the value of attribute base_uri.



6
7
8
# File 'lib/api_mini_tester/test_scenario.rb', line 6

def base_uri
  @base_uri
end

#dataObject (readonly)

Returns the value of attribute data.



6
7
8
# File 'lib/api_mini_tester/test_scenario.rb', line 6

def data
  @data
end

#defaultsObject (readonly)

Returns the value of attribute defaults.



6
7
8
# File 'lib/api_mini_tester/test_scenario.rb', line 6

def defaults
  @defaults
end

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/api_mini_tester/test_scenario.rb', line 6

def name
  @name
end

#resultsObject (readonly)

Returns the value of attribute results.



6
7
8
# File 'lib/api_mini_tester/test_scenario.rb', line 6

def results
  @results
end

#scenarioObject (readonly)

Returns the value of attribute scenario.



6
7
8
# File 'lib/api_mini_tester/test_scenario.rb', line 6

def scenario
  @scenario
end

Instance Method Details

#add_result(result) ⇒ Object



26
27
28
# File 'lib/api_mini_tester/test_scenario.rb', line 26

def add_result(result)
  @results.steps << result
end


30
31
32
33
34
# File 'lib/api_mini_tester/test_scenario.rb', line 30

def print_results
  @results.each do |line|
    puts line
  end
end

#run_scenarioObject



36
37
38
39
40
41
42
43
44
# File 'lib/api_mini_tester/test_scenario.rb', line 36

def run_scenario
  @context = []
  scenario['steps'].each do |step|
    step = TestStep.new(base_uri, step, @context, data, defaults)
    step_result, context = step.run_step
    @results[:steps] << step_result
    @context << context
  end
end

#valid?Boolean

Returns:

  • (Boolean)


17
18
19
20
21
22
23
24
# File 'lib/api_mini_tester/test_scenario.rb', line 17

def valid?
  return false if scenario.nil? || scenario['steps'].nil?
  return false unless scenario['steps'].is_a?(Array) || scenario['steps'].empty?
  return false if name.nil? || name.empty?
  return false if base_uri.nil? || base_uri.empty?

  true
end