class Ccp::Utils::TestFailed::Differ

Public Instance Methods

execute() click to toggle source
# File lib/ccp/utils/test_failed.rb, line 6
def execute
  unless a.class == b.class
    failed("%s expected [%s], but got [%s]" % [path, a.class, b.class])
  end

  if a.class == Array
    max = [a.size, b.size].max
    (0...max).each do |i|
      Differ.new(a[i], b[i], "#{path}[#{i}]").execute
    end
    return true
  end

  if a.class == Hash
    (a.keys | b.keys).each do |key|
      Differ.new(a[key], b[key], "#{path}[#{key}]").execute
    end
    return true
  end

  unless a == b
    failed("%s expected %s, but got %s" % [path, a.inspect, b.inspect])
  end
end

Private Instance Methods

failed(msg) click to toggle source
# File lib/ccp/utils/test_failed.rb, line 32
def failed(msg)
  raise Ccp::Failed, msg
end