class ActiveRecord::Coders::YAMLColumnTest

Public Instance Methods

test_initialize_takes_class() click to toggle source
# File activerecord/test/cases/coders/yaml_column_test.rb, line 8
def test_initialize_takes_class
  coder = YAMLColumn.new("attr_name", Object)
  assert_equal Object, coder.object_class
end
test_load_doesnt_handle_undefined_class_or_module() click to toggle source
# File activerecord/test/cases/coders/yaml_column_test.rb, line 57
def test_load_doesnt_handle_undefined_class_or_module
  coder = YAMLColumn.new("attr_name")
  missing_class_yaml = '--- !ruby/object:DoesNotExistAndShouldntEver {}\n'
  assert_raises(ArgumentError) do
    coder.load(missing_class_yaml)
  end
end
test_load_doesnt_swallow_yaml_exceptions() click to toggle source
# File activerecord/test/cases/coders/yaml_column_test.rb, line 49
def test_load_doesnt_swallow_yaml_exceptions
  coder = YAMLColumn.new("attr_name")
  bad_yaml = "--- {"
  assert_raises(Psych::SyntaxError) do
    coder.load(bad_yaml)
  end
end
test_load_handles_other_classes() click to toggle source
# File activerecord/test/cases/coders/yaml_column_test.rb, line 44
def test_load_handles_other_classes
  coder = YAMLColumn.new("attr_name")
  assert_equal [], coder.load([])
end
test_nil_is_ok() click to toggle source
# File activerecord/test/cases/coders/yaml_column_test.rb, line 29
def test_nil_is_ok
  coder = YAMLColumn.new("attr_name")
  assert_nil coder.load "--- "
end
test_returns_new_with_different_class() click to toggle source
# File activerecord/test/cases/coders/yaml_column_test.rb, line 34
def test_returns_new_with_different_class
  coder = YAMLColumn.new("attr_name", SerializationTypeMismatch)
  assert_equal SerializationTypeMismatch, coder.load("--- ").class
end
test_returns_string_unless_starts_with_dash() click to toggle source
# File activerecord/test/cases/coders/yaml_column_test.rb, line 39
def test_returns_string_unless_starts_with_dash
  coder = YAMLColumn.new("attr_name")
  assert_equal "foo", coder.load("foo")
end
test_type_mismatch_on_different_classes() click to toggle source
# File activerecord/test/cases/coders/yaml_column_test.rb, line 21
def test_type_mismatch_on_different_classes
  coder = YAMLColumn.new("tags", Array)
  error = assert_raises(SerializationTypeMismatch) do
    coder.load "--- foo"
  end
  assert_equal %{can't load `tags`: was supposed to be a Array, but was a String. -- "foo"}, error.to_s
end
test_type_mismatch_on_different_classes_on_dump() click to toggle source
# File activerecord/test/cases/coders/yaml_column_test.rb, line 13
def test_type_mismatch_on_different_classes_on_dump
  coder = YAMLColumn.new("tags", Array)
  error = assert_raises(SerializationTypeMismatch) do
    coder.dump("a")
  end
  assert_equal %{can't dump `tags`: was supposed to be a Array, but was a String. -- "a"}, error.to_s
end