diff options
author | Yves Senn <yves.senn@gmail.com> | 2014-03-28 16:10:24 +0100 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2014-03-28 16:10:24 +0100 |
commit | d8b45832340adacdddf94e251bf6d8787edb1015 (patch) | |
tree | cd8d20cd96a265dbcb1bb35853c6515af3f3ee5a | |
parent | 557ac34fc02d67c1202708f679745e1283cf9e11 (diff) | |
download | rails-d8b45832340adacdddf94e251bf6d8787edb1015.tar.gz rails-d8b45832340adacdddf94e251bf6d8787edb1015.tar.bz2 rails-d8b45832340adacdddf94e251bf6d8787edb1015.zip |
PostgreSQL, test-cases to lock down column default values.
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| |