From 187e1f85d0c871ba61e5bc3651a7ec2f657db8f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20L=C3=BCtke?= Date: Mon, 9 Jul 2007 22:07:39 +0000 Subject: Support for non heterogeneous arrays when serializing to xml. Unless guessable from array name the type name will be included as attribute git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7173 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/test/xml_serialization_test.rb | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'activerecord/test') diff --git a/activerecord/test/xml_serialization_test.rb b/activerecord/test/xml_serialization_test.rb index 807daddabb..f6e3d0dd9d 100644 --- a/activerecord/test/xml_serialization_test.rb +++ b/activerecord/test/xml_serialization_test.rb @@ -2,6 +2,7 @@ require 'abstract_unit' require 'fixtures/post' require 'fixtures/author' require 'fixtures/tagging' +require 'fixtures/comment' class Contact < ActiveRecord::Base # mock out self.columns so no pesky db is needed for these tests @@ -147,8 +148,8 @@ class DatabaseConnectedXmlSerializationTest < Test::Unit::TestCase def test_include_uses_association_name xml = authors(:david).to_xml :include=>:hello_posts, :indent => 0 assert_match %r{}, xml - assert_match %r{}, xml - assert_match %r{}, xml + assert_match %r{}, xml + assert_match %r{}, xml end def test_methods_are_called_on_object @@ -171,4 +172,18 @@ class DatabaseConnectedXmlSerializationTest < Test::Unit::TestCase assert_match %r{^ }, xml end + def test_should_has_many_array_elements_should_include_type_when_different_from_guessed_value + xml = authors(:david).to_xml :include=>:posts_with_comments, :indent => 2 + + assert Hash.from_xml(xml) + assert_match %r{^ }, xml + assert_match %r{^ }, xml + assert_match %r{^ }, xml + + types = Hash.from_xml(xml)['author']['posts_with_comments'].collect {|t| t['type'] } + assert types.include?('SpecialPost') + assert types.include?('Post') + assert types.include?('StiPost') + end + end \ No newline at end of file -- cgit v1.2.3