aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/adapters/postgresql/hstore_test.rb
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2013-10-24 23:48:39 -0700
committerYves Senn <yves.senn@gmail.com>2013-10-24 23:48:39 -0700
commitabeff5e64553ad5491a1663d124bfe9582a5f61e (patch)
tree06677dc32ad6034e837bf22f26a1ec1642290ca6 /activerecord/test/cases/adapters/postgresql/hstore_test.rb
parent7160ffbe59ef99f01f530ad6e8377f8a91218396 (diff)
parent0492ea6d39e48c5bdb1d15eb4afdd54b00ece091 (diff)
downloadrails-abeff5e64553ad5491a1663d124bfe9582a5f61e.tar.gz
rails-abeff5e64553ad5491a1663d124bfe9582a5f61e.tar.bz2
rails-abeff5e64553ad5491a1663d124bfe9582a5f61e.zip
Merge pull request #12490 from senny/store_accessor_hstore_bug
ActiveRecord Store works with PG `hstore` columns
Diffstat (limited to 'activerecord/test/cases/adapters/postgresql/hstore_test.rb')
-rw-r--r--activerecord/test/cases/adapters/postgresql/hstore_test.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/activerecord/test/cases/adapters/postgresql/hstore_test.rb b/activerecord/test/cases/adapters/postgresql/hstore_test.rb
index f61f196c71..de724486c2 100644
--- a/activerecord/test/cases/adapters/postgresql/hstore_test.rb
+++ b/activerecord/test/cases/adapters/postgresql/hstore_test.rb
@@ -7,6 +7,8 @@ require 'active_record/connection_adapters/postgresql_adapter'
class PostgresqlHstoreTest < ActiveRecord::TestCase
class Hstore < ActiveRecord::Base
self.table_name = 'hstores'
+
+ store_accessor :settings, :language, :timezone
end
def setup
@@ -26,6 +28,7 @@ class PostgresqlHstoreTest < ActiveRecord::TestCase
@connection.transaction do
@connection.create_table('hstores') do |t|
t.hstore 'tags', :default => ''
+ t.hstore 'settings'
end
end
@column = Hstore.columns.find { |c| c.name == 'tags' }
@@ -90,6 +93,24 @@ class PostgresqlHstoreTest < ActiveRecord::TestCase
assert_equal({'c'=>'}','"a"'=>'b "a b'}, @column.type_cast(%q(c=>"}", "\"a\""=>"b \"a b")))
end
+ def test_with_store_accessors
+ x = Hstore.new(language: "fr", timezone: "GMT")
+ assert_equal "fr", x.language
+ assert_equal "GMT", x.timezone
+
+ x.save!
+ x = Hstore.first
+ assert_equal "fr", x.language
+ assert_equal "GMT", x.timezone
+
+ x.language = "de"
+ x.save!
+
+ x = Hstore.first
+ assert_equal "de", x.language
+ assert_equal "GMT", x.timezone
+ end
+
def test_gen1
assert_equal(%q(" "=>""), @column.class.hstore_to_string({' '=>''}))
end