class ActiveRecord::Migration::CreateJoinTableTest
Attributes
connection[R]
Public Instance Methods
setup()
click to toggle source
Calls superclass method
# File activerecord/test/cases/migration/create_join_table_test.rb, line 10 def setup super @connection = ActiveRecord::Base.connection end
test_create_and_drop_join_table_with_common_prefix()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 136 def test_create_and_drop_join_table_with_common_prefix with_table_cleanup do connection.create_join_table "audio_artists", "audio_musics" assert connection.table_exists?("audio_artists_musics") connection.drop_join_table "audio_artists", "audio_musics" assert !connection.table_exists?("audio_artists_musics"), "Should have dropped join table, but didn't" end end
test_create_join_table()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 21 def test_create_join_table connection.create_join_table :artists, :musics assert_equal %w(artist_id music_id), connection.columns(:artists_musics).map(&:name).sort end
test_create_join_table_respects_reference_key_type()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 83 def test_create_join_table_respects_reference_key_type connection.create_join_table :artists, :musics do |t| t.references :video end artist_id, music_id, video_id = connection.columns(:artists_musics).sort_by(&:name) assert_equal video_id.sql_type, artist_id.sql_type assert_equal video_id.sql_type, music_id.sql_type end
test_create_join_table_set_not_null_by_default()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 27 def test_create_join_table_set_not_null_by_default connection.create_join_table :artists, :musics assert_equal [false, false], connection.columns(:artists_musics).map(&:null) end
test_create_join_table_with_column_options()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 63 def test_create_join_table_with_column_options connection.create_join_table :artists, :musics, column_options: { null: true } assert_equal [true, true], connection.columns(:artists_musics).map(&:null) end
test_create_join_table_with_index()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 75 def test_create_join_table_with_index connection.create_join_table :artists, :musics do |t| t.index [:artist_id, :music_id] end assert_equal [%w(artist_id music_id)], connection.indexes(:artists_musics).map(&:columns) end
test_create_join_table_with_strings()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 33 def test_create_join_table_with_strings connection.create_join_table "artists", "musics" assert_equal %w(artist_id music_id), connection.columns(:artists_musics).map(&:name).sort end
test_create_join_table_with_symbol_and_string()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 39 def test_create_join_table_with_symbol_and_string connection.create_join_table :artists, "musics" assert_equal %w(artist_id music_id), connection.columns(:artists_musics).map(&:name).sort end
test_create_join_table_with_the_proper_order()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 45 def test_create_join_table_with_the_proper_order connection.create_join_table :videos, :musics assert_equal %w(music_id video_id), connection.columns(:musics_videos).map(&:name).sort end
test_create_join_table_with_the_table_name()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 51 def test_create_join_table_with_the_table_name connection.create_join_table :artists, :musics, table_name: :catalog assert_equal %w(artist_id music_id), connection.columns(:catalog).map(&:name).sort end
test_create_join_table_with_the_table_name_as_string()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 57 def test_create_join_table_with_the_table_name_as_string connection.create_join_table :artists, :musics, table_name: "catalog" assert_equal %w(artist_id music_id), connection.columns(:catalog).map(&:name).sort end
test_create_join_table_with_uuid()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 147 def test_create_join_table_with_uuid connection.create_join_table :artists, :musics, column_options: { type: :uuid } assert_equal [:uuid, :uuid], connection.columns(:artists_musics).map(&:type) end
test_create_join_table_without_indexes()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 69 def test_create_join_table_without_indexes connection.create_join_table :artists, :musics assert connection.indexes(:artists_musics).blank? end
test_drop_join_table()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 94 def test_drop_join_table connection.create_join_table :artists, :musics connection.drop_join_table :artists, :musics assert !connection.table_exists?("artists_musics") end
test_drop_join_table_with_column_options()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 129 def test_drop_join_table_with_column_options connection.create_join_table :artists, :musics, column_options: { null: true } connection.drop_join_table :artists, :musics, column_options: { null: true } assert !connection.table_exists?("artists_musics") end
test_drop_join_table_with_strings()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 101 def test_drop_join_table_with_strings connection.create_join_table :artists, :musics connection.drop_join_table "artists", "musics" assert !connection.table_exists?("artists_musics") end
test_drop_join_table_with_the_proper_order()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 108 def test_drop_join_table_with_the_proper_order connection.create_join_table :videos, :musics connection.drop_join_table :videos, :musics assert !connection.table_exists?("musics_videos") end
test_drop_join_table_with_the_table_name()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 115 def test_drop_join_table_with_the_table_name connection.create_join_table :artists, :musics, table_name: :catalog connection.drop_join_table :artists, :musics, table_name: :catalog assert !connection.table_exists?("catalog") end
test_drop_join_table_with_the_table_name_as_string()
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 122 def test_drop_join_table_with_the_table_name_as_string connection.create_join_table :artists, :musics, table_name: "catalog" connection.drop_join_table :artists, :musics, table_name: "catalog" assert !connection.table_exists?("catalog") end
Private Instance Methods
with_table_cleanup() { || ... }
click to toggle source
# File activerecord/test/cases/migration/create_join_table_test.rb, line 155 def with_table_cleanup tables_before = connection.data_sources yield ensure tables_after = connection.data_sources - tables_before tables_after.each do |table| connection.drop_table table end end