From 85b64f98d100d37b3a232c315daa10fad37dccdc Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 13 Oct 2011 16:23:48 -0500 Subject: Added ActiveRecord::Base.store for declaring simple single-column key/value stores [DHH] --- activerecord/test/cases/store_test.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 activerecord/test/cases/store_test.rb (limited to 'activerecord/test/cases/store_test.rb') diff --git a/activerecord/test/cases/store_test.rb b/activerecord/test/cases/store_test.rb new file mode 100644 index 0000000000..3d056d93b6 --- /dev/null +++ b/activerecord/test/cases/store_test.rb @@ -0,0 +1,29 @@ +require 'cases/helper' +require 'models/admin' +require 'models/admin/user' + +class StoreTest < ActiveRecord::TestCase + setup do + @john = Admin::User.create(name: 'John Doe', color: 'black') + end + + test "reading store attributes through accessors" do + assert_equal 'black', @john.color + assert_nil @john.homepage + end + + test "writing store attributes through accessors" do + @john.color = 'red' + @john.homepage = '37signals.com' + + assert_equal 'red', @john.color + assert_equal '37signals.com', @john.homepage + end + + test "accessing attributes not exposed by accessors" do + @john.settings[:icecream] = 'graeters' + @john.save + + assert 'graeters', @john.reload.settings[:icecream] + end +end -- cgit v1.2.3 From 8cbe826958f78e5de5723bcbd3c90ea381a79e48 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Thu, 13 Oct 2011 16:11:00 -0700 Subject: Rails 4 is just around the corner. Stuck with 1.8 until then. --- activerecord/test/cases/store_test.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'activerecord/test/cases/store_test.rb') diff --git a/activerecord/test/cases/store_test.rb b/activerecord/test/cases/store_test.rb index 3d056d93b6..fb77220875 100644 --- a/activerecord/test/cases/store_test.rb +++ b/activerecord/test/cases/store_test.rb @@ -4,9 +4,9 @@ require 'models/admin/user' class StoreTest < ActiveRecord::TestCase setup do - @john = Admin::User.create(name: 'John Doe', color: 'black') + @john = Admin::User.create(:name => 'John Doe', :color => 'black') end - + test "reading store attributes through accessors" do assert_equal 'black', @john.color assert_nil @john.homepage @@ -19,7 +19,7 @@ class StoreTest < ActiveRecord::TestCase assert_equal 'red', @john.color assert_equal '37signals.com', @john.homepage end - + test "accessing attributes not exposed by accessors" do @john.settings[:icecream] = 'graeters' @john.save -- cgit v1.2.3 From 5daf07704ad21d885661216281ffc48b6ea6adfb Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 25 Oct 2011 17:22:52 -0500 Subject: Fix that changing a store should mark the store attribute as changed --- activerecord/test/cases/store_test.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'activerecord/test/cases/store_test.rb') diff --git a/activerecord/test/cases/store_test.rb b/activerecord/test/cases/store_test.rb index 3d056d93b6..3f7a965cfb 100644 --- a/activerecord/test/cases/store_test.rb +++ b/activerecord/test/cases/store_test.rb @@ -26,4 +26,9 @@ class StoreTest < ActiveRecord::TestCase assert 'graeters', @john.reload.settings[:icecream] end + + test "updating the store will mark it as changed" do + @john.color = 'red' + assert @john.settings_changed? + end end -- cgit v1.2.3 From 4f20eb5908895ac1f074cc1e2bc60f58e2d50a03 Mon Sep 17 00:00:00 2001 From: Jon Leighton Date: Wed, 30 Nov 2011 21:49:24 +0000 Subject: Fix typo --- activerecord/test/cases/store_test.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'activerecord/test/cases/store_test.rb') diff --git a/activerecord/test/cases/store_test.rb b/activerecord/test/cases/store_test.rb index 074fd39e65..5a3f9a9711 100644 --- a/activerecord/test/cases/store_test.rb +++ b/activerecord/test/cases/store_test.rb @@ -24,9 +24,9 @@ class StoreTest < ActiveRecord::TestCase @john.settings[:icecream] = 'graeters' @john.save - assert 'graeters', @john.reload.settings[:icecream] + assert_equal 'graeters', @john.reload.settings[:icecream] end - + test "updating the store will mark it as changed" do @john.color = 'red' assert @john.settings_changed? -- cgit v1.2.3