# unit test helper

require 'json'

# fetch the status file and extract the previous sample, then call the method
# the same string is used to extract the sample and call the method
def runtest(method_name)
  status_file = File.expand_path('../../status.json', __FILE__)
  baseline = JSON.parse(File.read(status_file),{symbolize_names: true}) rescue {}
  baseline[:data] = {} unless baseline[:data].instance_of? Hash
  previous = baseline[:data][method_name.to_sym] || {mtime: Time.at(0)}
  response = Monitor.send(method_name, previous)
  if response == previous
    puts "No change in response"
  elsif response[:data] and response[:data] == previous[:data]
    # main class adds a trailer after the data
    puts "No change in response data"
  else
    puts "Reponse differs:"
    puts previous
    puts response
  end
  puts JSON.pretty_generate(response)
end
