foreigner 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -26,7 +26,7 @@ module Foreigner
26
26
  sql
27
27
  end
28
28
 
29
- def remove_foreign_key(table, options)
29
+ def remove_foreign_key(table, to_table = nil, options)
30
30
  execute "ALTER TABLE #{quote_table_name(table)} #{remove_foreign_key_sql(table, options)}"
31
31
  end
32
32
 
@@ -0,0 +1,42 @@
1
+ require 'helper'
2
+
3
+ class ReversibleTest < Foreigner::AdapterTest
4
+ include Foreigner::ConnectionAdapters::Mysql2Adapter
5
+ ActiveRecord::Migration::CommandRecorder.class_eval do
6
+ include Foreigner::Migration::CommandRecorder
7
+ end
8
+
9
+ test 'invert_remove_foreign_key' do
10
+ recorder = ActiveRecord::Migration::CommandRecorder.new
11
+ recorded = recorder.add_foreign_key(:table1, :table2)[0]
12
+ assert_equal(
13
+ send(recorded[0], *recorded[1]),
14
+ send(*recorder.invert_remove_foreign_key(:table1, :table2))
15
+ )
16
+ end
17
+ test 'invert_remove_foreign_key with column' do
18
+ recorder = ActiveRecord::Migration::CommandRecorder.new
19
+ recorded = recorder.add_foreign_key(:table1, :table2, :column => :column1)[0]
20
+ assert_equal(
21
+ send(recorded[0], *recorded[1]),
22
+ send(*recorder.invert_remove_foreign_key(:table1, :table2, :column => :column1))
23
+ )
24
+ end
25
+ test 'invert_add_foreign_key' do
26
+ recorder = ActiveRecord::Migration::CommandRecorder.new
27
+ recorded = recorder.remove_foreign_key(:table1, :table2)[0]
28
+ assert_equal(
29
+ send(recorded[0], *recorded[1]),
30
+ send(*recorder.invert_add_foreign_key(:table1, :table2))
31
+ )
32
+ end
33
+ test 'invert_add_foreign_key with column' do
34
+ recorder = ActiveRecord::Migration::CommandRecorder.new
35
+ recorded = recorder.remove_foreign_key(:table1, :table2, :column => :column1)[0]
36
+ assert_equal(
37
+ send(recorded[0], *recorded[1]),
38
+ send(*recorder.invert_add_foreign_key(:table1, :table2, :column => :column1))
39
+ )
40
+ end
41
+
42
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: foreigner
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.0
5
+ version: 1.0.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Matthew Higgins
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-17 00:00:00 -07:00
13
+ date: 2011-05-22 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -48,6 +48,7 @@ files:
48
48
  - lib/foreigner.rb
49
49
  - test/helper.rb
50
50
  - test/mysql2_adapter_test.rb
51
+ - test/reversible_test.rb
51
52
  - test/sql2003_test.rb
52
53
  has_rdoc: true
53
54
  homepage: http://github.com/matthuhiggins/foreigner