Commit 48ed402738a2224e019595989e4ac02562ea158a

Authored by Lucas Melo
1 parent 6aacd907

destroy AbuseComplaint when reported is destroyed

ActionItem2451

Including: migration and test.
app/models/profile.rb
... ... @@ -211,7 +211,7 @@ class Profile < ActiveRecord::Base
211 211 has_many :profile_categorizations_including_virtual, :class_name => 'ProfileCategorization'
212 212 has_many :categories_including_virtual, :through => :profile_categorizations_including_virtual, :source => :category
213 213  
214   - has_many :abuse_complaints, :foreign_key => 'requestor_id'
  214 + has_many :abuse_complaints, :foreign_key => 'requestor_id', :dependent => :destroy
215 215  
216 216 def top_level_categorization
217 217 ret = {}
... ...
db/migrate/20130429214630_destroy_inconsistent_abuse_complaints.rb 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +class DestroyInconsistentAbuseComplaints < ActiveRecord::Migration
  2 + def self.up
  3 + AbuseComplaint.all.each do |ac|
  4 + if ac.reported.nil?
  5 + ac.destroy
  6 + end
  7 + end
  8 + end
  9 +
  10 + def self.down
  11 + raise ActiveRecord::IrreversibleMigration
  12 + end
  13 +end
... ...
test/unit/abuse_complaint_test.rb
... ... @@ -35,4 +35,16 @@ class AbuseComplaintTest &lt; ActiveSupport::TestCase
35 35 t = AbuseComplaint.create
36 36 assert_equal Task::Status::HIDDEN, t.status
37 37 end
  38 +
  39 + should 'be destroyed with reported' do
  40 + reported = fast_create(Profile)
  41 + reported_id = reported.id
  42 + abuse_complaint = AbuseComplaint.create!(:reported => reported)
  43 +
  44 + assert AbuseComplaint.find_by_requestor_id(reported_id), "AbuseComplaint was not created!"
  45 +
  46 + reported.destroy
  47 +
  48 + assert !AbuseComplaint.find_by_requestor_id(reported_id), "AbuseComplaint still exist!"
  49 + end
38 50 end
... ...