Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #3735: active_schema_test_mysql.rb

File active_schema_test_mysql.rb, 1.1 kB (added by jramirez, 2 years ago)

test to try the error before/after applying the patch (adding test_add_column_with_primary_key_type to existing unit test)

Line 
1 require 'abstract_unit'
2
3 class ActiveSchemaTest < Test::Unit::TestCase
4   def setup
5     ActiveRecord::ConnectionAdapters::MysqlAdapter.class_eval do
6       alias_method :real_execute, :execute
7       def execute(sql, name = nil) return sql end
8     end   
9   end
10  
11   def teardown
12     ActiveRecord::ConnectionAdapters::MysqlAdapter.send(:alias_method, :execute, :real_execute)
13   end
14
15   def test_drop_table
16     assert_equal "DROP TABLE people", drop_table(:people)
17   end
18  
19   def test_add_column
20     assert_equal "ALTER TABLE people ADD `last_name` varchar(255)", add_column(:people, :last_name, :string)
21   end
22  
23   def test_add_column_with_limit
24     assert_equal "ALTER TABLE people ADD `key` varchar(32)", add_column(:people, :key, :string, :limit => 32)
25   end
26  
27   def test_add_column_with_primary_key_type
28     assert_equal "ALTER TABLE people ADD `new_key` int(11) DEFAULT NULL auto_increment PRIMARY KEY", add_column(:people, :new_key, :primary_key)
29   end
30  
31   private
32     def method_missing(method_symbol, *arguments)
33       ActiveRecord::Base.connection.send(method_symbol, *arguments)
34     end
35 end