test/json_representer_test.rb in roar-0.11.4 vs test/json_representer_test.rb in roar-0.11.5
- old
+ new
@@ -8,61 +8,61 @@
include Roar::Representer::JSON
property :id
property :pending
attr_accessor :id, :pending
end
-
-
+
+
describe "JsonRepresenter" do
before do
@order = Order.new
end
-
-
+
+
describe "#to_json" do
before do
@order.id = 1
end
-
+
it "returns the serialized model" do
assert_equal '{"id":1}', @order.to_json
end
-
+
it "is aliased by #serialize" do
assert_equal '{"id":1}', @order.serialize
end
-
+
it "accepts :include and :exclude" do
assert_equal '{}', @order.to_json(:exclude => [:id])
end
end
-
+
describe "#from_json" do
it "returns the deserialized model" do
@order.from_json('{"id":1}')
assert_equal 1, @order.id
end
-
+
it "is aliased by #deserialize" do
@order.deserialize('{"id":1}')
assert_equal 1, @order.id
end
-
+
it "works with a nil document" do
assert @order.from_json(nil)
end
it "works with an empty document" do
assert @order.from_json('')
end
-
+
it "accepts :include and :exclude" do
@order.from_json('{"id":1}', :exclude => [:id])
assert_equal nil, @order.id
end
end
-
+
describe "JSON.from_json" do
it "is aliased by #deserialize" do
@order = Order.deserialize('{"id":1}')
assert_equal 1, @order.id
end
@@ -74,71 +74,71 @@
class JsonHyperlinkRepresenterTest
describe "API" do
before do
@link = Roar::Representer::Feature::Hypermedia::Hyperlink.new.extend(Roar::Representer::JSON::HyperlinkRepresenter).from_json({:rel => :self, :href => "http://roar.apotomo.de", :media => "web"}.to_json)
end
-
+
it "responds to #rel" do
assert_equal "self", @link.rel
end
-
+
it "responds to #href" do
assert_equal "http://roar.apotomo.de", @link.href
end
-
+
it "responds to #media" do
assert_equal "web", @link.media
end
-
+
it "responds to #to_json" do
assert_equal "{\"rel\":\"self\",\"href\":\"http://roar.apotomo.de\",\"media\":\"web\"}", @link.to_json
end
end
end
class JsonHypermediaTest
describe "Hypermedia API" do
before do
@c = Class.new do
- include AttributesContructor
+ include AttributesConstructor
include Roar::Representer::JSON
include Roar::Representer::Feature::Hypermedia
attr_accessor :id, :self, :next
-
+
property :id
-
+
link :self do "http://self" end
link :next do "http://next/#{id}" end
end
-
+
@r = @c.new
end
-
+
it "responds to #links" do
- assert_equal [], @r.links
+ @r.links.must_equal({})
end
-
+
it "extracts links from JSON" do
r = @c.from_json({:links => [{:rel => "self", :href => "http://self"}]}.to_json)
-
- assert_equal 1, r.links.size
- link = r.links.first
- assert_equal(["self", "http://self"], [link.rel, link.href])
+
+ assert_equal 1, r.links_array.size
+ link = r.links_array.first
+ 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
-
+
link :self do nil end
link :next do false end
end.new.to_json)
end
-
+
end
end