aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/adapters/mysql2/active_schema_test.rb
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-03-26 20:31:51 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-03-26 20:31:51 -0300
commit110f2ed23a81533706a246b9955b1186896fa84f (patch)
tree73f462df9765fb0ab048921af146f10c2bc43eb7 /activerecord/test/cases/adapters/mysql2/active_schema_test.rb
parent9ed0cf51b467907810ef3959c8e9cdf77370370e (diff)
parentcbe1bc29722ddeda12d8652c409cea156ddb85a3 (diff)
downloadrails-110f2ed23a81533706a246b9955b1186896fa84f.tar.gz
rails-110f2ed23a81533706a246b9955b1186896fa84f.tar.bz2
rails-110f2ed23a81533706a246b9955b1186896fa84f.zip
Merge branch 'rm-create-with-index'
Diffstat (limited to 'activerecord/test/cases/adapters/mysql2/active_schema_test.rb')
-rw-r--r--activerecord/test/cases/adapters/mysql2/active_schema_test.rb15
1 files changed, 14 insertions, 1 deletions
diff --git a/activerecord/test/cases/adapters/mysql2/active_schema_test.rb b/activerecord/test/cases/adapters/mysql2/active_schema_test.rb
index 7905edaf83..81c614924f 100644
--- a/activerecord/test/cases/adapters/mysql2/active_schema_test.rb
+++ b/activerecord/test/cases/adapters/mysql2/active_schema_test.rb
@@ -17,7 +17,8 @@ class ActiveSchemaTest < ActiveRecord::TestCase
end
def test_add_index
- # add_index calls index_name_exists? which can't work since execute is stubbed
+ # add_index calls table_exists? and index_name_exists? which can't work since execute is stubbed
+ def (ActiveRecord::Base.connection).table_exists?(*); true; end
def (ActiveRecord::Base.connection).index_name_exists?(*); false; end
expected = "CREATE INDEX `index_people_on_last_name` ON `people` (`last_name`) "
@@ -116,6 +117,18 @@ class ActiveSchemaTest < ActiveRecord::TestCase
end
end
+ def test_indexes_in_create
+ ActiveRecord::Base.connection.stubs(:table_exists?).with(:temp).returns(false)
+ ActiveRecord::Base.connection.stubs(:index_name_exists?).with(:index_temp_on_zip).returns(false)
+
+ expected = "CREATE TEMPORARY TABLE `temp` ( INDEX `index_temp_on_zip` (`zip`) ) ENGINE=InnoDB AS SELECT id, name, zip FROM a_really_complicated_query"
+ actual = ActiveRecord::Base.connection.create_table(:temp, temporary: true, as: "SELECT id, name, zip FROM a_really_complicated_query") do |t|
+ t.index :zip
+ end
+
+ assert_equal expected, actual
+ end
+
private
def with_real_execute
ActiveRecord::Base.connection.singleton_class.class_eval do