diff options
Diffstat (limited to 'activerecord/test/cases/view_test.rb')
-rw-r--r-- | activerecord/test/cases/view_test.rb | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/activerecord/test/cases/view_test.rb b/activerecord/test/cases/view_test.rb index 357265aa05..3aed90ba36 100644 --- a/activerecord/test/cases/view_test.rb +++ b/activerecord/test/cases/view_test.rb @@ -1,24 +1,28 @@ require "cases/helper" require "models/book" -if ActiveRecord::Base.connection.supports_views? -class ViewWithPrimaryKeyTest < ActiveRecord::TestCase - fixtures :books +module ViewBehavior + extend ActiveSupport::Concern + + included do + fixtures :books + end class Ebook < ActiveRecord::Base self.primary_key = "id" end - setup do + def setup + super @connection = ActiveRecord::Base.connection - @connection.execute <<-SQL - CREATE VIEW ebooks - AS SELECT id, name, status FROM books WHERE format = 'ebook' + create_view "ebooks", <<-SQL + SELECT id, name, status FROM books WHERE format = 'ebook' SQL end - teardown do - @connection.execute "DROP VIEW ebooks" if @connection.table_exists? "ebooks" + def teardown + super + drop_view "ebooks" end def test_reading @@ -51,6 +55,20 @@ class ViewWithPrimaryKeyTest < ActiveRecord::TestCase end end +if ActiveRecord::Base.connection.supports_views? +class ViewWithPrimaryKeyTest < ActiveRecord::TestCase + include ViewBehavior + + private + def create_view(name, query) + @connection.execute "CREATE VIEW #{name} AS #{query}" + end + + def drop_view(name) + @connection.execute "DROP VIEW #{name}" if @connection.table_exists? name + end +end + class ViewWithoutPrimaryKeyTest < ActiveRecord::TestCase fixtures :books |