Commit 9f7261cd52cd058191f150fa39205324d10725ed

Authored by Rodrigo Souto
1 parent 36701ca8

rails3: fix organization tests

Also moving profile extension to make count use distinct by default to
ActiveRecord::Calculations module.
app/models/profile.rb
... ... @@ -98,15 +98,6 @@ class Profile < ActiveRecord::Base
98 98 members.count
99 99 end
100 100  
101   - class << self
102   - def count_with_distinct(*args)
103   - options = args.last || {}
104   - count_without_distinct(:id, {:distinct => true}.merge(options))
105   - end
106   - alias_method_chain :count, :distinct
107   - end
108   -
109   -
110 101 def members_by_role(role)
111 102 Person.members_of(self).all(:conditions => ['role_assignments.role_id = ?', role.id])
112 103 end
... ...
lib/noosfero/core_ext/active_record.rb
... ... @@ -27,3 +27,10 @@ class ActiveRecord::Base
27 27 end
28 28  
29 29 end
  30 +
  31 +ActiveRecord::Calculations.module_eval do
  32 + def count_with_default_distinct(column_name=:id, options={})
  33 + count_without_default_distinct(column_name, {:distinct => true}.merge(options))
  34 + end
  35 + alias_method_chain :count, :default_distinct
  36 +end
... ...
test/unit/organization_test.rb
... ... @@ -21,7 +21,7 @@ class OrganizationTest &lt; ActiveSupport::TestCase
21 21 :requestor => requestor,
22 22 :target => org,
23 23 }
24   - CreateEnterprise.create!(data)
  24 + create(CreateEnterprise, data)
25 25 end
26 26  
27 27  
... ... @@ -97,7 +97,7 @@ class OrganizationTest &lt; ActiveSupport::TestCase
97 97 end
98 98  
99 99 should 'list contact_email plus admin emails as "notification emails"' do
100   - o = Organization.new(:contact_email => 'org@email.com')
  100 + o = build(Organization, :contact_email => 'org@email.com')
101 101 admin1 = mock; admin1.stubs(:email).returns('admin1@email.com')
102 102 admin2 = mock; admin2.stubs(:email).returns('admin2@email.com')
103 103 o.stubs(:admins).returns([admin1, admin2])
... ... @@ -106,7 +106,7 @@ class OrganizationTest &lt; ActiveSupport::TestCase
106 106 end
107 107  
108 108 should 'list only admins if contact_email is nil' do
109   - o = Organization.new(:contact_email => nil)
  109 + o = build(Organization, :contact_email => nil)
110 110 admin1 = mock; admin1.stubs(:email).returns('admin1@email.com')
111 111 admin2 = mock; admin2.stubs(:email).returns('admin2@email.com')
112 112 o.stubs(:admins).returns([admin1, admin2])
... ... @@ -115,7 +115,7 @@ class OrganizationTest &lt; ActiveSupport::TestCase
115 115 end
116 116  
117 117 should 'list only admins if contact_email is a blank string' do
118   - o = Organization.new(:contact_email => '')
  118 + o = build(Organization, :contact_email => '')
119 119 admin1 = mock; admin1.stubs(:email).returns('admin1@email.com')
120 120 admin2 = mock; admin2.stubs(:email).returns('admin2@email.com')
121 121 o.stubs(:admins).returns([admin1, admin2])
... ... @@ -124,13 +124,13 @@ class OrganizationTest &lt; ActiveSupport::TestCase
124 124 end
125 125  
126 126 should 'return empty array if contact_email is a blank string and it has no admin' do
127   - o = Organization.new(:contact_email => '', :environment => Environment.default)
  127 + o = build(Organization, :contact_email => '', :environment => Environment.default)
128 128 assert_equal [], o.notification_emails
129 129 end
130 130  
131 131 should 'list pending enterprise validations' do
132 132 org = Organization.new
133   - assert_kind_of Array, org.pending_validations
  133 + assert_kind_of ActiveRecord::Relation, org.pending_validations
134 134 end
135 135  
136 136 should 'be able to find a pending validation by its code' do
... ... @@ -148,7 +148,7 @@ class OrganizationTest &lt; ActiveSupport::TestCase
148 148  
149 149 should 'be able to find already processed validations' do
150 150 org = Organization.new
151   - assert_kind_of Array, org.processed_validations
  151 + assert_kind_of ActiveRecord::Relation, org.processed_validations
152 152 end
153 153  
154 154 should 'be able to find an already processed validation by its code' do
... ... @@ -160,7 +160,7 @@ class OrganizationTest &lt; ActiveSupport::TestCase
160 160 end
161 161  
162 162 should 'have boxes and blocks upon creation' do
163   - profile = Organization.create!(:name => 'test org', :identifier => 'testorg')
  163 + profile = create(Organization, :name => 'test org', :identifier => 'testorg')
164 164  
165 165 assert profile.boxes.size > 0
166 166 assert profile.blocks.size > 0
... ... @@ -391,7 +391,7 @@ class OrganizationTest &lt; ActiveSupport::TestCase
391 391 end
392 392  
393 393 should 'validates format of cnpj' do
394   - organization = Organization.new(:cnpj => '239-234.234')
  394 + organization = build(Organization, :cnpj => '239-234.234')
395 395 organization.valid?
396 396 assert organization.errors[:cnpj.to_s].present?
397 397  
... ...