Class: ApiMiniTester::TestSuite

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(suite_def) ⇒ TestSuite

Returns a new instance of TestSuite.



10
11
12
13
14
15
16
17
# File 'lib/api_mini_tester/test_suite.rb', line 10

def initialize(suite_def)
  if suite_def.is_a?(String)
    @test = YAML.load(File.open(suite_def))
  elsif suite_def.is_a?(Hash)
    @test = suite_def
  end
  setup
end

Instance Attribute Details

#base_uriObject (readonly)

Returns the value of attribute base_uri.



8
9
10
# File 'lib/api_mini_tester/test_suite.rb', line 8

def base_uri
  @base_uri
end

#dataObject (readonly)

Returns the value of attribute data.



8
9
10
# File 'lib/api_mini_tester/test_suite.rb', line 8

def data
  @data
end

#defaultsObject (readonly)

Returns the value of attribute defaults.



8
9
10
# File 'lib/api_mini_tester/test_suite.rb', line 8

def defaults
  @defaults
end

#resultsObject (readonly)

Returns the value of attribute results.



8
9
10
# File 'lib/api_mini_tester/test_suite.rb', line 8

def results
  @results
end

#scenariosObject (readonly)

Returns the value of attribute scenarios.



8
9
10
# File 'lib/api_mini_tester/test_suite.rb', line 8

def scenarios
  @scenarios
end

Instance Method Details



43
44
45
46
# File 'lib/api_mini_tester/test_suite.rb', line 43

def print_results(format)
  formatter = TestFormatter.new(results)
  formatter.send("to_#{format}")
end

#run_scenariosObject



34
35
36
37
38
39
40
41
# File 'lib/api_mini_tester/test_suite.rb', line 34

def run_scenarios
  scenarios.each do |scenario|
    runner = TestScenario.new(base_uri, scenario, data, defaults)
    runner.run_scenario
    @results[:scenarios] << runner.results
  end
  @results
end

#setupObject



26
27
28
29
30
31
32
# File 'lib/api_mini_tester/test_suite.rb', line 26

def setup
  @base_uri = @test['settings']['baseurl']
  @scenarios = @test['tests']
  @data = @test['data']
  @defaults = @test['defaults']
  @results = {name: @test['name'], desc: @test['desc'], scenarios: []}
end

#valid?Boolean

Returns:

  • (Boolean)


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

def valid?
  return false if base_uri.nil? || base_uri.empty?
  return false if scenarios.nil? || scenarios.empty?

  true
end