class Oncall::Reporter

Attributes

results[RW]

Public Class Methods

new() click to toggle source
# File lib/oncall/reporter.rb, line 7
def initialize
  @messages = []
  @start_time = nil
  @end_time = nil
  @results = {
    success: 0,
    failed: 0,
    warn: 0,
    skipped: 0
  }
end

Public Instance Methods

empty_call(test_case) click to toggle source
# File lib/oncall/reporter.rb, line 33
def empty_call(test_case)
  add_skipped
  report_empty_call
end
empty_group(test_case) click to toggle source
# File lib/oncall/reporter.rb, line 28
def empty_group(test_case)
  add_warn
  report_empty_group
end
json_schema(test_case, result, expected) click to toggle source
# File lib/oncall/reporter.rb, line 49
def json_schema(test_case, result, expected)
  if result
    add_success
    report_success
  else
    add_failed
    report_failure
    @messages << "#{test_case.to_s}: JSON schema didn't match:\n#{expected}"
  end
end
report() { |self| ... } click to toggle source
# File lib/oncall/reporter.rb, line 19
def report
  start
  begin
    yield self
  ensure
    finish
  end
end
status(test_case, result, expected) click to toggle source
# File lib/oncall/reporter.rb, line 38
def status(test_case, result, expected)
  if result
    add_success
    report_success
  else
    add_failed
    report_failure
    @messages << "#{test_case.to_s}: Expected status: #{expected}"
  end
end
success?() click to toggle source
# File lib/oncall/reporter.rb, line 60
def success?
  @results[:failed].zero?
end

Private Instance Methods

add_failed() click to toggle source
# File lib/oncall/reporter.rb, line 70
def add_failed
  @results[:failed] = @results[:failed] + 1
end
add_skipped() click to toggle source
# File lib/oncall/reporter.rb, line 78
def add_skipped
  @results[:skipped] = @results[:skipped] + 1
end
add_success() click to toggle source
# File lib/oncall/reporter.rb, line 66
def add_success
  @results[:success] = @results[:success] + 1
end
add_warn() click to toggle source
# File lib/oncall/reporter.rb, line 74
def add_warn
  @results[:warn] = @results[:warn] + 1
end
finish() click to toggle source
# File lib/oncall/reporter.rb, line 102
def finish
  @end_time = Time.now

  puts "\n\n"
  puts @messages

  elapsed_seconds = (@end_time.to_f - @start_time.to_f).to_f
  puts "\nFinished in #{elapsed_seconds.round(4)} seconds"

  result = "#{@results[:success]} passed.\n#{@results[:failed]} failed.\n#{@results[:warn]} warnings.\n#{@results[:skipped]} skipped.\n"

  if success?
    puts result.green
  else
    puts result.red
  end
end
report_empty_call() click to toggle source
# File lib/oncall/reporter.rb, line 94
def report_empty_call
  print '*'
end
report_empty_group() click to toggle source
# File lib/oncall/reporter.rb, line 90
def report_empty_group
  print 'W'
end
report_failure() click to toggle source
# File lib/oncall/reporter.rb, line 86
def report_failure
  print 'F'
end
report_success() click to toggle source
# File lib/oncall/reporter.rb, line 82
def report_success
  print '.'
end
start() click to toggle source
# File lib/oncall/reporter.rb, line 98
def start
  @start_time = Time.now
end