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