aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2014-03-28 16:10:24 +0100
committerYves Senn <yves.senn@gmail.com>2014-03-28 16:10:24 +0100
commitd8b45832340adacdddf94e251bf6d8787edb1015 (patch)
treecd8d20cd96a265dbcb1bb35853c6515af3f3ee5a /activerecord
parent557ac34fc02d67c1202708f679745e1283cf9e11 (diff)
downloadrails-d8b45832340adacdddf94e251bf6d8787edb1015.tar.gz
rails-d8b45832340adacdddf94e251bf6d8787edb1015.tar.bz2
rails-d8b45832340adacdddf94e251bf6d8787edb1015.zip
PostgreSQL, test-cases to lock down column default values.
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/test/cases/adapters/postgresql/array_test.rb11
-rw-r--r--activerecord/test/cases/adapters/postgresql/hstore_test.rb11
-rw-r--r--activerecord/test/cases/adapters/postgresql/json_test.rb11
3 files changed, 33 insertions, 0 deletions
diff --git a/activerecord/test/cases/adapters/postgresql/array_test.rb b/activerecord/test/cases/adapters/postgresql/array_test.rb
index 1802ef654f..714da83a54 100644
--- a/activerecord/test/cases/adapters/postgresql/array_test.rb
+++ b/activerecord/test/cases/adapters/postgresql/array_test.rb
@@ -37,6 +37,17 @@ class PostgresqlArrayTest < ActiveRecord::TestCase
assert_not ratings_column.number?
end
+ def test_default
+ @connection.add_column 'pg_arrays', 'score', :integer, array: true, default: [4, 4, 2]
+ PgArray.reset_column_information
+ column = PgArray.columns_hash["score"]
+
+ assert_equal([4, 4, 2], column.default)
+ assert_equal([4, 4, 2], PgArray.new.score)
+ ensure
+ PgArray.reset_column_information
+ end
+
def test_change_column_with_array
@connection.add_column :pg_arrays, :snippets, :string, array: true, default: []
@connection.change_column :pg_arrays, :snippets, :text, array: true, default: "{}"
diff --git a/activerecord/test/cases/adapters/postgresql/hstore_test.rb b/activerecord/test/cases/adapters/postgresql/hstore_test.rb
index a70dadee56..c24c4b0d56 100644
--- a/activerecord/test/cases/adapters/postgresql/hstore_test.rb
+++ b/activerecord/test/cases/adapters/postgresql/hstore_test.rb
@@ -61,6 +61,17 @@ class PostgresqlHstoreTest < ActiveRecord::TestCase
assert_not @column.array
end
+ def test_default
+ @connection.add_column 'hstores', 'permissions', :hstore, default: '"users"=>"read", "articles"=>"write"'
+ Hstore.reset_column_information
+ column = Hstore.columns_hash["permissions"]
+
+ assert_equal({"users"=>"read", "articles"=>"write"}, column.default)
+ assert_equal({"users"=>"read", "articles"=>"write"}, Hstore.new.permissions)
+ ensure
+ Hstore.reset_column_information
+ end
+
def test_change_table_supports_hstore
@connection.transaction do
@connection.change_table('hstores') do |t|
diff --git a/activerecord/test/cases/adapters/postgresql/json_test.rb b/activerecord/test/cases/adapters/postgresql/json_test.rb
index 1590624b2b..ee793ffff2 100644
--- a/activerecord/test/cases/adapters/postgresql/json_test.rb
+++ b/activerecord/test/cases/adapters/postgresql/json_test.rb
@@ -40,6 +40,17 @@ class PostgresqlJSONTest < ActiveRecord::TestCase
assert_not column.array
end
+ def test_default
+ @connection.add_column 'json_data_type', 'permissions', :json, default: '{"users": "read", "posts": ["read", "write"]}'
+ JsonDataType.reset_column_information
+ column = JsonDataType.columns_hash["permissions"]
+
+ assert_equal({"users"=>"read", "posts"=>["read", "write"]}, column.default)
+ assert_equal({"users"=>"read", "posts"=>["read", "write"]}, JsonDataType.new.permissions)
+ ensure
+ JsonDataType.reset_column_information
+ end
+
def test_change_table_supports_json
@connection.transaction do
@connection.change_table('json_data_type') do |t|