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