diff options
author | Yves Senn <yves.senn@gmail.com> | 2014-03-04 13:14:41 +0100 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2014-03-04 13:14:41 +0100 |
commit | 9ada39f62edad92ef1e754f93b71e452397f53b8 (patch) | |
tree | c874d86ca782b8018ce7e161d295cb346156025e /activerecord/test/cases/adapters/postgresql/enum_test.rb | |
parent | 7231a135ea53d306b259782cb93d68e633397be5 (diff) | |
parent | 5c55aafd38f45ac019573f98438ffdbdc8c580f9 (diff) | |
download | rails-9ada39f62edad92ef1e754f93b71e452397f53b8.tar.gz rails-9ada39f62edad92ef1e754f93b71e452397f53b8.tar.bz2 rails-9ada39f62edad92ef1e754f93b71e452397f53b8.zip |
Merge pull request #13244 from kommen/pg_enum_type_map
Add Enum type to postgresql adapter's oids to prevent unknown OID warnings
Diffstat (limited to 'activerecord/test/cases/adapters/postgresql/enum_test.rb')
-rw-r--r-- | activerecord/test/cases/adapters/postgresql/enum_test.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/activerecord/test/cases/adapters/postgresql/enum_test.rb b/activerecord/test/cases/adapters/postgresql/enum_test.rb index bf8dbd6c3f..a9a2901436 100644 --- a/activerecord/test/cases/adapters/postgresql/enum_test.rb +++ b/activerecord/test/cases/adapters/postgresql/enum_test.rb @@ -23,6 +23,8 @@ class PostgresqlEnumTest < ActiveRecord::TestCase t.column :current_mood, :mood end end + # reload type map after creating the enum type + @connection.send(:reload_type_map) end def test_enum_mapping @@ -35,4 +37,30 @@ class PostgresqlEnumTest < ActiveRecord::TestCase assert_equal "happy", enum.reload.current_mood end + + def test_invalid_enum_update + @connection.execute "INSERT INTO postgresql_enums VALUES (1, 'sad');" + enum = PostgresqlEnum.first + enum.current_mood = "angry" + + assert_raise ActiveRecord::StatementInvalid do + enum.save + end + end + + def test_no_oid_warning + @connection.execute "INSERT INTO postgresql_enums VALUES (1, 'sad');" + stderr_output = capture(:stderr) { + enum = PostgresqlEnum.first + } + + assert stderr_output.blank? + end + + def test_enum_type_cast + enum = PostgresqlEnum.new + enum.current_mood = :happy + + assert_equal "happy", enum.current_mood + end end |