aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorMauricio Linhares <mauricio.linhares@gmail.com>2014-01-29 00:54:13 -0300
committerMauricio Linhares <mauricio.linhares@gmail.com>2014-01-29 18:44:32 -0300
commitc9346322b15c15f51234c33a3db1b3895ffe84ab (patch)
tree81ea6732d209e037d86c27158b1020d9cad39a52 /activerecord/test
parent6277bd80c904290ca97c5c0380678cd981992d99 (diff)
downloadrails-c9346322b15c15f51234c33a3db1b3895ffe84ab.tar.gz
rails-c9346322b15c15f51234c33a3db1b3895ffe84ab.tar.bz2
rails-c9346322b15c15f51234c33a3db1b3895ffe84ab.zip
Fixing issue with activerecord serialization not being able to dump a record after loading it from YAML - fixes #13861
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/store_test.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/activerecord/test/cases/store_test.rb b/activerecord/test/cases/store_test.rb
index 6f632b4d8d..e24df6abe9 100644
--- a/activerecord/test/cases/store_test.rb
+++ b/activerecord/test/cases/store_test.rb
@@ -166,4 +166,27 @@ class StoreTest < ActiveRecord::TestCase
test "YAML coder initializes the store when a Nil value is given" do
assert_equal({}, @john.params)
end
+
+ test "attributes_for_coder should return stored fields already serialized" do
+ attributes = {
+ "id" => @john.id,
+ "name"=> @john.name,
+ "settings" => "--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncolor: black\n",
+ "preferences" => "--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\nremember_login: true\n",
+ "json_data" => "{\"height\":\"tall\"}", "json_data_empty"=>"{\"is_a_good_guy\":true}",
+ "params" => "--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess {}\n",
+ "account_id"=> @john.account_id }
+ assert_equal attributes, @john.attributes_for_coder
+ end
+
+ test "dump, load and dump again a model" do
+ dumped = YAML.dump( @john )
+ loaded = YAML.load( dumped )
+ assert_equal @john, loaded
+
+ second_dump = YAML.dump( loaded )
+ assert_equal dumped, second_dump
+ assert_equal @john, YAML.load( second_dump )
+ end
+
end