1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activemodel/test/cases/serialization_test.rb
Neeraj Singh 8402488568 adding new test for ActiveModel::Serialization
Signed-off-by: José Valim <jose.valim@gmail.com>
2010-08-31 17:45:03 +02:00

45 lines
1.2 KiB
Ruby

require "cases/helper"
class SerializationTest < ActiveModel::TestCase
class User
include ActiveModel::Serialization
attr_accessor :name, :email, :gender
def attributes
@attributes ||= {'name' => 'nil', 'email' => 'nil', 'gender' => 'nil'}
end
def foo
'i_am_foo'
end
end
setup do
@user = User.new
@user.name = 'David'
@user.email = 'david@example.com'
@user.gender = 'male'
end
def test_method_serializable_hash_should_work
expected = {"name"=>"David", "gender"=>"male", "email"=>"david@example.com"}
assert_equal expected , @user.serializable_hash
end
def test_method_serializable_hash_should_work_with_only_option
expected = {"name"=>"David"}
assert_equal expected , @user.serializable_hash(:only => [:name])
end
def test_method_serializable_hash_should_work_with_except_option
expected = {"gender"=>"male", "email"=>"david@example.com"}
assert_equal expected , @user.serializable_hash(:except => [:name])
end
def test_method_serializable_hash_should_work_with_methods_option
expected = {"name"=>"David", "gender"=>"male", :foo=>"i_am_foo", "email"=>"david@example.com"}
assert_equal expected , @user.serializable_hash(:methods => [:foo])
end
end