From 89c9ff8d8b70bb5b0bc56576be94f27f87996bbe Mon Sep 17 00:00:00 2001 From: Jan Berdajs Date: Wed, 5 Jun 2013 19:53:17 +0200 Subject: add test for 9041454def79d8e61cabe49e7c5cb72cef29138b --- .../cases/attribute_methods/serialization_test.rb | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 activerecord/test/cases/attribute_methods/serialization_test.rb (limited to 'activerecord/test/cases/attribute_methods') diff --git a/activerecord/test/cases/attribute_methods/serialization_test.rb b/activerecord/test/cases/attribute_methods/serialization_test.rb new file mode 100644 index 0000000000..8ce6192096 --- /dev/null +++ b/activerecord/test/cases/attribute_methods/serialization_test.rb @@ -0,0 +1,28 @@ +require "cases/helper" + +module ActiveRecord + module AttributeMethods + class SerializationTest < ActiveSupport::TestCase + class FakeColumn < Struct.new(:name) + def type; :integer; end + def type_cast(s); "#{s}!"; end + end + + def test_type_cast_serialized_value + value = stub(state: :serialized, value: "Hello world") + value.expects(:unserialized_value).with("Hello world!") + + type = Serialization::Type.new(FakeColumn.new) + type.type_cast(value) + end + + def test_type_cast_unserialized_value + value = stub(state: :unserialized, value: "Hello world") + value.expects(:unserialized_value).with() + + type = Serialization::Type.new(FakeColumn.new) + type.type_cast(value) + end + end + end +end -- cgit v1.2.3 From e086ff563569f72a156fe105cc47767ad376cc3f Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Mon, 17 Jun 2013 10:50:11 -0700 Subject: just construct real objects rather than mock and stub --- .../test/cases/attribute_methods/serialization_test.rb | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'activerecord/test/cases/attribute_methods') diff --git a/activerecord/test/cases/attribute_methods/serialization_test.rb b/activerecord/test/cases/attribute_methods/serialization_test.rb index 8ce6192096..75de773961 100644 --- a/activerecord/test/cases/attribute_methods/serialization_test.rb +++ b/activerecord/test/cases/attribute_methods/serialization_test.rb @@ -8,20 +8,21 @@ module ActiveRecord def type_cast(s); "#{s}!"; end end - def test_type_cast_serialized_value - value = stub(state: :serialized, value: "Hello world") - value.expects(:unserialized_value).with("Hello world!") + class NullCoder + def load(v); v; end + end + def test_type_cast_serialized_value + value = Serialization::Attribute.new(NullCoder.new, "Hello world", :serialized) type = Serialization::Type.new(FakeColumn.new) - type.type_cast(value) + assert_equal "Hello world!", type.type_cast(value) end def test_type_cast_unserialized_value - value = stub(state: :unserialized, value: "Hello world") - value.expects(:unserialized_value).with() - + value = Serialization::Attribute.new(nil, "Hello world", :unserialized) type = Serialization::Type.new(FakeColumn.new) type.type_cast(value) + assert_equal "Hello world", type.type_cast(value) end end end -- cgit v1.2.3 From 6e43fcb33365c66359e6363abdc2d108aef9fd67 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 2 Jul 2013 15:43:29 -0700 Subject: remove private attribute reader --- activerecord/test/cases/attribute_methods/read_test.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'activerecord/test/cases/attribute_methods') diff --git a/activerecord/test/cases/attribute_methods/read_test.rb b/activerecord/test/cases/attribute_methods/read_test.rb index 8d8ff2f952..6dbebf4b6f 100644 --- a/activerecord/test/cases/attribute_methods/read_test.rb +++ b/activerecord/test/cases/attribute_methods/read_test.rb @@ -56,9 +56,9 @@ module ActiveRecord end def test_attribute_methods_generated? - assert(!@klass.attribute_methods_generated?, 'attribute_methods_generated?') + assert_not @klass.method_defined?(:one) @klass.define_attribute_methods - assert(@klass.attribute_methods_generated?, 'attribute_methods_generated?') + assert @klass.method_defined?(:one) end end end -- cgit v1.2.3 From 8eb7561ac6e8f020ec09608532de310c6b0b8dcd Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 2 Jul 2013 17:11:35 -0700 Subject: initialize generated modules on inclusion and on inheritence --- activerecord/test/cases/attribute_methods/read_test.rb | 7 ------- 1 file changed, 7 deletions(-) (limited to 'activerecord/test/cases/attribute_methods') diff --git a/activerecord/test/cases/attribute_methods/read_test.rb b/activerecord/test/cases/attribute_methods/read_test.rb index 6dbebf4b6f..c0659fddef 100644 --- a/activerecord/test/cases/attribute_methods/read_test.rb +++ b/activerecord/test/cases/attribute_methods/read_test.rb @@ -15,13 +15,6 @@ module ActiveRecord include ActiveRecord::AttributeMethods - def self.define_attribute_methods - # Created in the inherited/included hook for "proper" ARs - @attribute_methods_mutex ||= Mutex.new - - super - end - def self.column_names %w{ one two three } end -- cgit v1.2.3