test/xml_representer_test.rb in roar-0.9.2 vs test/xml_representer_test.rb in roar-0.10.0
- old
+ new
@@ -16,38 +16,19 @@
property :item, :class => ItemRepresenter
attr_accessor :id, :item
end
-
-
-class XMLRepresenterUnitTest < MiniTest::Spec
- describe "XmlRepresenter" do
- describe "#link" do
- class Rapper
- include Roar::Representer::XML
- include Roar::Representer::Feature::Hypermedia
-
- link :self
- link :next
- end
-
- it "creates a LinksDefinition" do
- assert_equal 1, Rapper.representable_attrs.size
- assert_equal [{:rel=>:self, :block=>nil}, {:rel=>:next, :block=>nil}], Rapper.representable_attrs.first.rel2block
- end
- end
- end
-end
-
-
class XMLRepresenterFunctionalTest < MiniTest::Spec
- class GreedyOrder
+ class Order
include AttributesContructor
attr_accessor :id, :items
end
+ class GreedyOrder < Order
+ end
+
class TestXmlRepresenter
include Roar::Representer::XML
self.representation_wrap= :order
property :id
attr_accessor :id
@@ -56,10 +37,11 @@
describe "XMLRepresenter" do
before do
@m = {"id" => "1"}
@o = Order.new(@m)
+
@r = TestXmlRepresenter.new
@i = ItemRepresenter.new
@i.value = "Beer"
end
@@ -75,10 +57,14 @@
end
it "is aliased by #serialize" do
assert_equal @r.to_xml, @r.serialize
end
+
+ it "accepts :include and :except" do
+ assert_equal '<order/>', @r.to_xml(:except => [:id])
+ end
end
describe "#from_xml" do
it "deserializes object" do
@order = Order.new.from_xml("<order><id>1</id></order>")
@@ -87,10 +73,15 @@
it "is aliased by #deserialize" do
@order = Order.new.deserialize("<order><id>1</id></order>")
assert_equal "1", @order.id
end
+
+ it "accepts :include and :except" do
+ @order = Order.new.deserialize("<order><id>1</id></order>", :except => [:id])
+ assert_equal nil, @order.id
+ end
end
describe "XML.from_xml" do
class Order
@@ -193,22 +184,25 @@
end
class XmlHyperlinkRepresenterTest < MiniTest::Spec
describe "API" do
before do
- @l = Roar::Representer::XML::Hyperlink.from_xml(%{<link rel="self" href="http://roar.apotomo.de"/>})
+ @link = Roar::Representer::Feature::Hypermedia::Hyperlink.new.extend(Roar::Representer::XML::HyperlinkRepresenter).from_xml(%{<link rel="self" href="http://roar.apotomo.de" media="web"/>})
end
- it "responds to #to_xml" do
- assert_xml_equal %{<link rel=\"self\" href=\"http://roar.apotomo.de\"/>}, @l.to_xml
+ 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 #rel" do
- assert_equal "self", @l.rel
+ it "responds to #media" do
+ assert_equal "web", @link.media
end
- it "responds to #href" do
- assert_equal "http://roar.apotomo.de", @l.href
+ it "responds to #to_xml" do
+ assert_xml_equal %{<link rel=\"self\" href=\"http://roar.apotomo.de\" media="web"/>}, @link.to_xml
end
end
end