Commit 29f6b68e5b527e4d0d94d4b4501b8e212cff723a

Authored by Rodrigo Souto
1 parent ddcf8bea

rails3: fix enterprise tests

PS: still tests failin
app/models/enterprise.rb
... ... @@ -53,8 +53,9 @@ class Enterprise < Organization
53 53 super + FIELDS
54 54 end
55 55  
56   - def validate
57   - super
  56 + validate :presence_of_required_fieds
  57 +
  58 + def presence_of_required_fieds
58 59 self.required_fields.each do |field|
59 60 if self.send(field).blank?
60 61 self.errors.add_on_blank(field)
... ... @@ -103,7 +104,7 @@ class Enterprise < Organization
103 104 if environment.replace_enterprise_template_when_enable
104 105 apply_template(template)
105 106 end
106   - save_without_validation!
  107 + save(:validate => false)
107 108 end
108 109  
109 110 def question
... ...
test/unit/enterprise_test.rb
... ... @@ -41,7 +41,7 @@ class EnterpriseTest < ActiveSupport::TestCase
41 41 end
42 42  
43 43 def test_belongs_to_environment_and_has_default
44   - assert_equal Environment.default, Enterprise.create!(:name => 'my test environment', :identifier => 'mytestenvironment').environment
  44 + assert_equal Environment.default, create(Enterprise, :name => 'my test environment', :identifier => 'mytestenvironment').environment
45 45 end
46 46  
47 47 def test_cannot_rename
... ... @@ -62,8 +62,8 @@ class EnterpriseTest < ActiveSupport::TestCase
62 62  
63 63 should 'remove products when removing enterprise' do
64 64 e = fast_create(Enterprise, :name => "My enterprise", :identifier => 'myenterprise')
65   - e.products.create!(:name => 'One product', :product_category => @product_category)
66   - e.products.create!(:name => 'Another product', :product_category => @product_category)
  65 + create(Product, :enterprise => e, :name => 'One product', :product_category => @product_category)
  66 + create(Product, :enterprise => e, :name => 'Another product', :product_category => @product_category)
67 67  
68 68 assert_difference Product, :count, -2 do
69 69 e.destroy
... ... @@ -71,15 +71,16 @@ class EnterpriseTest < ActiveSupport::TestCase
71 71 end
72 72  
73 73 should 'create a default set of articles' do
74   - Enterprise.any_instance.expects(:default_set_of_articles).returns([Blog.new(:name => 'Blog')])
75   - enterprise = Enterprise.create!(:name => 'my test enterprise', :identifier => 'myenterprise')
  74 + blog = build(Blog)
  75 + Enterprise.any_instance.expects(:default_set_of_articles).returns([blog])
  76 + enterprise = create(Enterprise, :name => 'my test enterprise', :identifier => 'myenterprise')
76 77  
77   - assert_kind_of Blog, enterprise.articles.find_by_path('blog')
78   - assert_kind_of RssFeed, enterprise.articles.find_by_path('blog/feed')
  78 + assert_kind_of Blog, enterprise.articles.find_by_path(blog.path)
  79 + assert_kind_of RssFeed, enterprise.articles.find_by_path(blog.feed.path)
79 80 end
80 81  
81 82 should 'create default set of blocks' do
82   - e = Enterprise.create(:name => 'my new community', :identifier => 'mynewcommunity')
  83 + e = create(Enterprise, :name => 'my new community', :identifier => 'mynewcommunity')
83 84  
84 85 assert !e.boxes[0].blocks.empty?, 'person must have blocks in area 1'
85 86 assert !e.boxes[1].blocks.empty?, 'person must have blocks in area 2'
... ... @@ -101,6 +102,7 @@ class EnterpriseTest < ActiveSupport::TestCase
101 102 enterprise.add_member(member)
102 103  
103 104 person = fast_create(Person)
  105 + enterprise.stubs(:notification_emails).returns(['sample@example.org'])
104 106 enterprise.add_member(person)
105 107  
106 108 assert_equal false, person.is_member_of?(enterprise)
... ... @@ -183,7 +185,7 @@ class EnterpriseTest < ActiveSupport::TestCase
183 185 inactive_template.boxes << Box.new
184 186 inactive_template.save!
185 187  
186   - active_template = Enterprise.create!(:name => 'enteprise template', :identifier => 'enterprise_template')
  188 + active_template = create(Enterprise, :name => 'enteprise template', :identifier => 'enterprise_template')
187 189 assert_equal 3, active_template.boxes.size
188 190  
189 191 e = Environment.default
... ... @@ -191,7 +193,7 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
191 193 e.enterprise_template = active_template
192 194 e.save!
193 195  
194   - ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent', :enabled => false)
  196 + ent = create(Enterprise, :name => 'test enteprise', :identifier => 'test_ent', :enabled => false)
195 197  
196 198 p = create_user('test_user').person
197 199 ent.enable(p)
... ... @@ -201,13 +203,13 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
201 203  
202 204 should 'create EnterpriseActivation task when creating with enabled = false' do
203 205 EnterpriseActivation.delete_all
204   - ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent', :enabled => false)
  206 + ent = create(Enterprise, :name => 'test enteprise', :identifier => 'test_ent', :enabled => false)
205 207 assert_equal [ent], EnterpriseActivation.find(:all).map(&:enterprise)
206 208 end
207 209  
208 210 should 'create EnterpriseActivation with 7-characters codes' do
209 211 EnterpriseActivation.delete_all
210   - Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent', :enabled => false)
  212 + create(Enterprise, :name => 'test enteprise', :identifier => 'test_ent', :enabled => false)
211 213 assert_equal 7, EnterpriseActivation.find(:first).code.size
212 214 end
213 215  
... ... @@ -236,7 +238,7 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
236 238 should 'list product categories full name' do
237 239 subcategory = fast_create(ProductCategory, :name => 'Products subcategory', :parent_id => @product_category.id)
238 240 ent = fast_create(Enterprise, :name => 'test ent', :identifier => 'test_ent')
239   - p = ent.products.create!(:name => 'test prod', :product_category => subcategory)
  241 + p = create(Product, :name => 'test prod', :product_category => subcategory, :enterprise => ent)
240 242  
241 243 assert_equal [p.category_full_name], ent.product_categories
242 244 end
... ... @@ -256,7 +258,7 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
256 258 end
257 259  
258 260 should 'have a default enterprise template' do
259   - env = Environment.create!(:name => 'test env')
  261 + env = create(Environment, :name => 'test env')
260 262 p = fast_create(Enterprise, :name => 'test_com', :identifier => 'test_com', :environment_id => env.id)
261 263 assert_kind_of Enterprise, p.template
262 264 end
... ... @@ -270,7 +272,7 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
270 272 e.inactive_enterprise_template = inactive_template
271 273 e.save!
272 274  
273   - ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent', :template => another_template, :environment => e)
  275 + ent = create(Enterprise, :name => 'test enteprise', :identifier => 'test_ent', :template => another_template, :environment => e)
274 276 assert_equal inactive_template, ent.template
275 277 end
276 278  
... ... @@ -282,7 +284,7 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
282 284 should 'return active_enterprise_fields' do
283 285 e = Environment.default
284 286 e.expects(:active_enterprise_fields).returns(['contact_phone', 'contact_email']).at_least_once
285   - ent = Enterprise.new(:environment => e)
  287 + ent = build(Enterprise, :environment => e)
286 288  
287 289 assert_equal e.active_enterprise_fields, ent.active_fields
288 290 end
... ... @@ -290,7 +292,7 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
290 292 should 'return required_enterprise_fields' do
291 293 e = Environment.default
292 294 e.expects(:required_enterprise_fields).returns(['contact_phone', 'contact_email']).at_least_once
293   - enterprise = Enterprise.new(:environment => e)
  295 + enterprise = build(Enterprise, :environment => e)
294 296  
295 297 assert_equal e.required_enterprise_fields, enterprise.required_fields
296 298 end
... ... @@ -298,7 +300,7 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
298 300 should 'require fields if enterprise needs' do
299 301 e = Environment.default
300 302 e.expects(:required_enterprise_fields).returns(['contact_phone']).at_least_once
301   - enterprise = Enterprise.new(:environment => e)
  303 + enterprise = build(Enterprise, :environment => e)
302 304 assert ! enterprise.valid?
303 305 assert enterprise.errors[:contact_phone.to_s].present?
304 306  
... ... @@ -308,28 +310,28 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
308 310 end
309 311  
310 312 should 'enable contact' do
311   - enterprise = Enterprise.new(:enable_contact_us => false)
  313 + enterprise = build(Enterprise, :enable_contact_us => false)
312 314 assert !enterprise.enable_contact?
313 315 enterprise.enable_contact_us = true
314 316 assert enterprise.enable_contact?
315 317 end
316 318  
317 319 should 'save organization_website with http' do
318   - p = Enterprise.new(:name => 'test_ent', :identifier => 'test_ent')
  320 + p = build(Enterprise, :name => 'test_ent', :identifier => 'test_ent')
319 321 p.organization_website = 'website.without.http'
320 322 p.save!
321 323 assert_equal 'http://website.without.http', p.organization_website
322 324 end
323 325  
324 326 should 'save not add http to empty organization_website' do
325   - p = Enterprise.new(:name => 'test_ent', :identifier => 'test_ent')
  327 + p = build(Enterprise, :name => 'test_ent', :identifier => 'test_ent')
326 328 p.organization_website = ''
327 329 p.save!
328 330 assert_equal '', p.organization_website
329 331 end
330 332  
331 333 should 'save organization_website as typed if has http' do
332   - p = Enterprise.new(:name => 'test_ent', :identifier => 'test_ent')
  334 + p = build(Enterprise, :name => 'test_ent', :identifier => 'test_ent')
333 335 p.organization_website = 'http://website.with.http'
334 336 p.save
335 337 assert_equal 'http://website.with.http', p.organization_website
... ... @@ -340,7 +342,7 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
340 342 e.enable('enterprises_are_disabled_when_created')
341 343 e.save!
342 344  
343   - ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent')
  345 + ent = create(Enterprise, :name => 'test enteprise', :identifier => 'test_ent')
344 346 assert_equal false, Enterprise['test_ent'].enabled?
345 347 end
346 348  
... ... @@ -349,12 +351,12 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
349 351  
350 352 e.enable('enterprises_are_validated_when_created')
351 353 e.save
352   - enterprise = Enterprise.create(:name => 'test enteprise', :identifier => 'test_ent1')
  354 + enterprise = create(Enterprise, :name => 'test enteprise', :identifier => 'test_ent1')
353 355 assert enterprise.validated
354 356  
355 357 e.disable('enterprises_are_validated_when_created')
356 358 e.save
357   - enterprise = Enterprise.create(:name => 'test enteprise', :identifier => 'test_ent2')
  359 + enterprise = create(Enterprise, :name => 'test enteprise', :identifier => 'test_ent2')
358 360 assert !enterprise.validated
359 361 end
360 362  
... ... @@ -369,7 +371,7 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
369 371 e.inactive_enterprise_template = inactive_template
370 372 e.save!
371 373  
372   - ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent')
  374 + ent = create(Enterprise, :name => 'test enteprise', :identifier => 'test_ent')
373 375 assert_equal 1, ent.boxes.size
374 376 end
375 377  
... ... @@ -384,23 +386,23 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
384 386 e.inactive_enterprise_template = inactive_template
385 387 e.save!
386 388  
387   - ent = Enterprise.create!(:name => 'test enteprise', :identifier => 'test_ent')
  389 + ent = create(Enterprise, :name => 'test enteprise', :identifier => 'test_ent')
388 390 assert_equal 3, ent.boxes.size
389 391 end
390 392  
391 393 should 'collect the highlighted products with image' do
392 394 env = Environment.default
393 395 e1 = fast_create(Enterprise)
394   - p1 = e1.products.create!(:name => 'test_prod1', :product_category_id => @product_category.id)
  396 + p1 = create(Product, :name => 'test_prod1', :product_category_id => @product_category.id, :enterprise => e1)
395 397 products = []
396 398 3.times {|n|
397   - products.push(Product.create!(:name => "product #{n}", :enterprise_id => e1.id,
  399 + products.push(create(Product, :name => "product #{n}", :enterprise_id => e1.id,
398 400 :highlighted => true, :product_category_id => @product_category.id,
399 401 :image_builder => { :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png') }
400 402 ))
401 403 }
402   - Product.create!(:name => "product 4", :enterprise_id => e1.id, :product_category_id => @product_category.id, :highlighted => true)
403   - Product.create!(:name => "product 5", :enterprise_id => e1.id, :product_category_id => @product_category.id, :image_builder => {
  404 + create(Product, :name => "product 4", :enterprise_id => e1.id, :product_category_id => @product_category.id, :highlighted => true)
  405 + create(Product, :name => "product 5", :enterprise_id => e1.id, :product_category_id => @product_category.id, :image_builder => {
404 406 :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')
405 407 })
406 408 assert_equal products, e1.highlighted_products_with_image
... ... @@ -409,8 +411,8 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
409 411 should 'has many inputs through products' do
410 412 enterprise = fast_create(Enterprise)
411 413 product = fast_create(Product, :enterprise_id => enterprise.id, :product_category_id => @product_category.id)
412   - product.inputs << Input.new(:product_category => @product_category)
413   - product.inputs << Input.new(:product_category => @product_category)
  414 + product.inputs << build(Input, :product_category => @product_category)
  415 + product.inputs << build(Input, :product_category => @product_category)
414 416  
415 417 assert_equal product.inputs, enterprise.inputs
416 418 end
... ... @@ -451,7 +453,7 @@ class EnterpriseTest &lt; ActiveSupport::TestCase
451 453  
452 454  
453 455 activity = ActionTracker::Record.last
454   - scrap = Scrap.create!(defaults_for_scrap(:sender => person, :receiver => enterprise, :content => 'A scrap'))
  456 + scrap = create(Scrap, defaults_for_scrap(:sender => person, :receiver => enterprise, :content => 'A scrap'))
455 457  
456 458 assert_equal [scrap], enterprise.activities.map { |a| a.klass.constantize.find(a.id) }
457 459 end
... ...