diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2011-02-01 09:34:21 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2011-02-01 14:25:46 -0800 |
commit | 3cc2b77dc1cb4c1e5cfac68c7828e35a27415e0d (patch) | |
tree | a4c0ff4344492bfaed687e1321e7bb8511933e97 /activerecord/test/cases | |
parent | 0171de00b7a21b9f2866f600fe2aca3152608e33 (diff) | |
download | rails-3cc2b77dc1cb4c1e5cfac68c7828e35a27415e0d.tar.gz rails-3cc2b77dc1cb4c1e5cfac68c7828e35a27415e0d.tar.bz2 rails-3cc2b77dc1cb4c1e5cfac68c7828e35a27415e0d.zip |
adding a YAML Column coder for YAML serialization to db columns
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/coders/yaml_column_test.rb | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/activerecord/test/cases/coders/yaml_column_test.rb b/activerecord/test/cases/coders/yaml_column_test.rb new file mode 100644 index 0000000000..f85f11b57f --- /dev/null +++ b/activerecord/test/cases/coders/yaml_column_test.rb @@ -0,0 +1,45 @@ +require "cases/helper" + +module ActiveRecord + module Coders + class YAMLColumnTest < ActiveRecord::TestCase + def test_initialize_takes_class + coder = YAMLColumn.new(Object) + assert_equal Object, coder.object_class + end + + def test_type_mismatch_on_different_classes + coder = YAMLColumn.new(Array) + assert_raises(SerializationTypeMismatch) do + coder.load "--- foo" + end + end + + def test_nil_is_ok + coder = YAMLColumn.new + assert_nil coder.load "--- " + end + + def test_nil_is_ok_with_different_class + coder = YAMLColumn.new SerializationTypeMismatch + assert_nil coder.load "--- " + end + + def test_returns_string_unless_starts_with_dash + coder = YAMLColumn.new + assert_equal 'foo', coder.load("foo") + end + + def test_load_handles_other_classes + coder = YAMLColumn.new + assert_equal [], coder.load([]) + end + + def test_load_swallows_yaml_exceptions + coder = YAMLColumn.new + bad_yaml = '--- {' + assert_equal bad_yaml, coder.load(bad_yaml) + end + end + end +end |