test/json_representer_test.rb in roar-0.12.9 vs test/json_representer_test.rb in roar-1.0.0.beta1
- old
+ new
@@ -1,16 +1,20 @@
require 'test_helper'
require "test_xml/mini_test"
-require "roar/representer/json"
+require "roar/json"
class JsonRepresenterTest < MiniTest::Spec
class Order
- include Roar::Representer::JSON
+ include Roar::JSON
property :id
property :pending
attr_accessor :id, :pending
+
+ def id=(v) # in ruby 2.2, #id= is not there, all at sudden. what *is* that?
+ @id=v
+ end
end
describe "JsonRepresenter" do
before do
@@ -61,22 +65,22 @@
end
end
describe "JSON.from_json" do
it "is aliased by #deserialize" do
- @order = Order.deserialize('{"id":1}')
+ @order = Order.new.deserialize('{"id":1}')
assert_equal 1, @order.id
end
end
end
end
# test the generic roar+json HyperlinkRepresenter
class JsonHyperlinkRepresenterTest
describe "API" do
before do
- @link = Roar::Representer::Feature::Hypermedia::Hyperlink.new.extend(Roar::Representer::JSON::HyperlinkRepresenter).from_json(
+ @link = Roar::Hypermedia::Hyperlink.new.extend(Roar::JSON::HyperlinkRepresenter).from_json(
'{"rel":"self", "href":"http://roar.apotomo.de", "media":"web"}')
end
it "responds to #rel" do
assert_equal "self", @link.rel
@@ -99,12 +103,12 @@
class JsonHypermediaTest
describe "Hypermedia API" do
before do
@c = Class.new do
include AttributesConstructor
- include Roar::Representer::JSON
- include Roar::Representer::Feature::Hypermedia
+ include Roar::JSON
+ include Roar::Hypermedia
attr_accessor :id, :self, :next
property :id
link :self do "http://self" end
@@ -113,28 +117,28 @@
@r = @c.new
end
it "responds to #links" do
- @r.links.must_equal({})
+ @r.links.must_equal nil
end
it "extracts links from JSON" do
- r = @c.from_json('{"links":[{"rel":"self","href":"http://self"}]}')
+ r = @r.from_json('{"links":[{"rel":"self","href":"http://self"}]}')
- assert_equal 1, r.links_array.size
- link = r.links_array.first
+ assert_equal 1, r.links.size
+ link = r.links["self"]
assert_equal(["self", "http://self"], [link.rel, link.href])
end
it "renders link: correctly in JSON" do
assert_equal "{\"id\":1,\"links\":[{\"rel\":\"self\",\"href\":\"http://self\"},{\"rel\":\"next\",\"href\":\"http://next/1\"}]}", @c.new(:id => 1).to_json
end
it "doesn't render links when empty" do
assert_equal("{\"links\":[]}", Class.new do
- include Roar::Representer::JSON
- include Roar::Representer::Feature::Hypermedia
+ include Roar::JSON
+ include Roar::Hypermedia
link :self do nil end
link :next do false end
end.new.to_json)
end