1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activerecord/test/cases/yaml_serialization_test.rb
2011-12-23 23:22:24 +00:00

57 lines
1.3 KiB
Ruby

require "cases/helper"
require 'models/topic'
class YamlSerializationTest < ActiveRecord::TestCase
fixtures :topics
def test_to_yaml_with_time_with_zone_should_not_raise_exception
tz = Time.zone
Time.zone = ActiveSupport::TimeZone["Pacific Time (US & Canada)"]
ActiveRecord::Base.time_zone_aware_attributes = true
topic = Topic.new(:written_on => DateTime.now)
assert_nothing_raised { topic.to_yaml }
ensure
Time.zone = tz
ActiveRecord::Base.time_zone_aware_attributes = false
end
def test_roundtrip
topic = Topic.first
assert topic
t = YAML.load YAML.dump topic
assert_equal topic, t
end
def test_roundtrip_serialized_column
topic = Topic.new(:content => {:omg=>:lol})
assert_equal({:omg=>:lol}, YAML.load(YAML.dump(topic)).content)
end
def test_encode_with_coder
topic = Topic.first
coder = {}
topic.encode_with coder
assert_equal({'attributes' => topic.attributes}, coder)
end
begin
require 'psych'
def test_psych_roundtrip
topic = Topic.first
assert topic
t = Psych.load Psych.dump topic
assert_equal topic, t
end
def test_psych_roundtrip_new_object
topic = Topic.new
assert topic
t = Psych.load Psych.dump topic
assert_equal topic.attributes, t.attributes
end
rescue LoadError
end
end