提交 cfb22381 编写于 作者: Y Yves Senn

test case for custom PostgreSQL enum type.

This test currently outputs the following warning:

```
unknown OID: current_mood(3567879) (SELECT  "postgresql_enums".* FROM "postgresql_enums"   ORDER BY "postgresql_enums"."id" ASC LIMIT 1)
unknown OID: current_mood(3567879) (SELECT  "postgresql_enums".* FROM "postgresql_enums"  WHERE "postgresql_enums"."id" = $1 LIMIT 1)
```

We have an open PR to deal with this issue. It will dynamically
register the OID for enum columns. This test case is merely to exhibit
the current behavior of PostgreSQL enum columns.
上级 89b4b51f
# -*- coding: utf-8 -*-
require "cases/helper"
require 'active_record/base'
require 'active_record/connection_adapters/postgresql_adapter'
class PostgresqlEnumTest < ActiveRecord::TestCase
class PostgresqlEnum < ActiveRecord::Base
self.table_name = "postgresql_enums"
end
def teardown
@connection.execute 'DROP TABLE IF EXISTS postgresql_enums'
@connection.execute 'DROP TYPE IF EXISTS mood'
end
def setup
@connection = ActiveRecord::Base.connection
@connection.transaction do
@connection.execute <<-SQL
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');
SQL
@connection.create_table('postgresql_enums') do |t|
t.column :current_mood, :mood
end
end
end
def test_enum_mapping
@connection.execute "INSERT INTO postgresql_enums VALUES (1, 'sad');"
enum = PostgresqlEnum.first
assert_equal "sad", enum.current_mood
enum.current_mood = "happy"
enum.save!
assert_equal "happy", enum.reload.current_mood
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册