Skip to content

Commit

Permalink
added dependent option to should_belong_to [thoughtbot#108]
Browse files Browse the repository at this point in the history
  • Loading branch information
mlins authored and rmm5t committed Jan 11, 2009
1 parent ef10377 commit fb11e5a
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
8 changes: 7 additions & 1 deletion lib/shoulda/active_record/macros.rb
Expand Up @@ -537,7 +537,7 @@ def should_have_and_belong_to_many(*associations)
# should_belong_to :parent
#
def should_belong_to(*associations)
get_options!(associations)
dependent = get_options!(associations, :dependent)
klass = model_class
associations.each do |association|
should "belong_to #{association}" do
Expand All @@ -550,6 +550,12 @@ def should_belong_to(*associations)
fk = reflection.options[:foreign_key] || reflection.primary_key_name
assert klass.column_names.include?(fk.to_s), "#{klass.name} does not have a #{fk} foreign key."
end

if dependent
assert_equal dependent.to_s,
reflection.options[:dependent].to_s,
"#{association} should have #{dependent} dependency"
end
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion test/rails_root/app/models/pets/dog.rb
@@ -1,7 +1,7 @@
module Pets
class Dog < ActiveRecord::Base
belongs_to :user, :foreign_key => :owner_id
belongs_to :address
belongs_to :address, :dependent => :destroy
has_many :treats
has_and_belongs_to_many :fleas, :join_table => :fleas
validates_presence_of :treats, :fleas
Expand Down
2 changes: 1 addition & 1 deletion test/unit/dog_test.rb
Expand Up @@ -2,7 +2,7 @@

class Pets::DogTest < Test::Unit::TestCase
should_belong_to :user
should_belong_to :address
should_belong_to :address, :dependent => :destroy
should_have_many :treats
should_have_and_belong_to_many :fleas
should_require_attributes :treats, :fleas
Expand Down

0 comments on commit fb11e5a

Please sign in to comment.