Add support for implicit serializers

This commit is contained in:
Jose and Yehuda
2011-10-15 16:53:22 +02:00
parent 2a4aaae72a
commit 776da539d7
2 changed files with 72 additions and 26 deletions

View File

@@ -2,7 +2,7 @@ require "cases/helper"
class SerializerTest < ActiveModel::TestCase
class Model
def initialize(hash)
def initialize(hash={})
@attributes = hash
end
@@ -141,6 +141,37 @@ class SerializerTest < ActiveModel::TestCase
def test_has_one
user = User.new
blog = Blog.new(:author => user)
blog = Blog.new
blog.author = user
json = BlogSerializer.new(blog, user).as_json
assert_equal({
:author => {
:first_name => "Jose",
:last_name => "Valim"
}
}, json)
end
def test_implicit_serializer
author_serializer = Class.new(ActiveModel::Serializer) do
attributes :first_name
end
blog_serializer = Class.new(ActiveModel::Serializer) do
const_set(:AuthorSerializer, author_serializer)
has_one :author
end
user = User.new
blog = Blog.new
blog.author = user
json = blog_serializer.new(blog, user).as_json
assert_equal({
:author => {
:first_name => "Jose"
}
}, json)
end
end