Commit da48ccac56745ce349a4fe4bca49025b0335ab89

Authored by Rafael Martins
1 parent 9d41da96

Fix for Certifier - will set Qualifier as self-declared if destroyed

app/models/certifier.rb
... ... @@ -5,12 +5,17 @@ class Certifier < ActiveRecord::Base
5 5 has_many :qualifier_certifiers, :dependent => :destroy
6 6 has_many :qualifiers, :through => :qualifier_certifiers
7 7  
8   - has_many :product_qualifiers, :dependent => :destroy
  8 + has_many :product_qualifiers
9 9 has_many :products, :through => :product_qualifiers, :source => :product
10 10  
11 11 validates_presence_of :environment_id
12 12 validates_presence_of :name
13 13  
  14 + def destroy
  15 + product_qualifiers.each { |pq| pq.update_attributes! :certifier => nil }
  16 + super
  17 + end
  18 +
14 19 def link
15 20 self[:link] || ''
16 21 end
... ...
test/unit/manage_products_helper_test.rb
... ... @@ -186,12 +186,11 @@ class ManageProductsHelperTest < ActiveSupport::TestCase
186 186 end
187 187 end
188 188  
189   - should 'product consider its Qualifier self-declared when Certifier is deleted' do
  189 + should 'delete product Qualifier self-declared when Certifier is deleted' do
190 190 product = fast_create(Product)
191 191 qualifier = fast_create(Qualifier)
192 192 certifier = fast_create(Certifier)
193 193 ProductQualifier.create!(:product => product, :qualifier => qualifier, :certifier => certifier)
194   -# The relationship between product, certifiers and qualifiers is extremely complicated
195 194 certifier.destroy
196 195 assert_nothing_raised do
197 196 result = display_qualifiers(product)
... ...