Complex struct encoding test

Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
This commit is contained in:
Alexey Nayden 2011-01-13 03:16:16 +03:00 committed by Santiago Pastorino
parent d75ff73a72
commit d2c17dbd11

@ -215,6 +215,29 @@ def test_array_should_pass_encoding_options_to_children_in_to_json
assert_equal(%([{"address":{"city":"London"}},{"address":{"city":"Paris"}}]), json)
end
def test_struct_encoding
Struct.new('UserNameAndEmail', :name, :email)
Struct.new('UserNameAndDate', :name, :date)
Struct.new('Custom', :name, :sub)
user_email = Struct::UserNameAndEmail.new 'David', 'sample@example.com'
user_birthday = Struct::UserNameAndDate.new 'David', Date.new(2010, 01, 01)
custom = Struct::Custom.new 'David', user_birthday
json_strings = ""
json_string_and_date = ""
json_custom = ""
assert_nothing_raised do
json_strings = user_email.to_json
json_string_and_date = user_birthday.to_json
json_custom = custom.to_json
end
assert_equal %({"name":"David","email":"sample@example.com"}), json_strings
assert_equal %({"name":"David","date":"2010/01/01"}), json_string_and_date
assert_equal %({"sub":{"name":"David","date":"2010/01/01"},"name":"David"}), json_custom
end
protected