JSON matcher updated (works with Rspec 1.3.1). Put this in
spec/support/matchers/json_matcher.rb:

Spec::Matchers.define :be_json_eql do | expected |
  match do | actual |
    @expected = decode(expected, 'expected')
    @actual = decode(actual, 'actual')
    @actual == @expected
  end

  failure_message_for_should do | actual |
    "expected\n#{actual}\n" +
    "to be JSON code equivalent to\n#{expected}\n" +
    "Difference:\n#{@expected.diff(@actual).inspect}"
  end

  failure_message_for_should_not do | actual |
      "expected\n#{actual}\n" +
      "to be JSON code different from\n#{expected}"
    end

  def decode(s, which)
    ActiveSupport::JSON.decode(s)
  rescue ActiveSupport::JSON::ParseError
    raise ArgumentError, "Invalid #{which} JSON string:
  #{s.inspect}"
  end
end

-- 
Posted via http://www.ruby-forum.com/.
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to