Commit e381bcc6307ee6b9f11f55ee151c50c5199569b4
1 parent
2d698f0b
Exists in
master
and in
29 other branches
Destroy roles when environment is destroyed
(ActionItem2987)
Showing
2 changed files
with
13 additions
and
1 deletions
Show diff stats
app/models/environment.rb
@@ -184,7 +184,7 @@ class Environment < ActiveRecord::Base | @@ -184,7 +184,7 @@ class Environment < ActiveRecord::Base | ||
184 | has_many :product_categories, :conditions => { :type => 'ProductCategory'} | 184 | has_many :product_categories, :conditions => { :type => 'ProductCategory'} |
185 | has_many :regions | 185 | has_many :regions |
186 | 186 | ||
187 | - has_many :roles | 187 | + has_many :roles, :dependent => :destroy |
188 | 188 | ||
189 | has_many :qualifiers | 189 | has_many :qualifiers |
190 | has_many :certifiers | 190 | has_many :certifiers |
test/unit/environment_test.rb
@@ -783,6 +783,18 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -783,6 +783,18 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
783 | assert role2.valid? | 783 | assert role2.valid? |
784 | end | 784 | end |
785 | 785 | ||
786 | + should 'destroy roles when its environment is destroyed' do | ||
787 | + e1 = fast_create(Environment) | ||
788 | + role1 = Role.create!(:name => 'test_role', :environment => e1, :key => 'a_member') | ||
789 | + e2 = fast_create(Environment) | ||
790 | + role2 = Role.create!(:name => 'test_role', :environment => e2, :key => 'a_member') | ||
791 | + | ||
792 | + e2.destroy | ||
793 | + | ||
794 | + assert_nothing_raised {Role.find(role1.id)} | ||
795 | + assert_raise(ActiveRecord::RecordNotFound) {Role.find(role2.id)} | ||
796 | + end | ||
797 | + | ||
786 | should 'have a help_message_to_add_enterprise attribute' do | 798 | should 'have a help_message_to_add_enterprise attribute' do |
787 | env = Environment.new | 799 | env = Environment.new |
788 | 800 |