Frederick Cheung wrote:
> Adding an extra test isn't going to help. Your test isn't passing
> because your object is not valid
> 
> Fred

Where am I wrong? Here's how I've done...

IN MODEL:
--------------------------------------------------------------------------------
class Fee < ActiveRecord::Base
  has_many :campsites

  validates_presence_of :per_person_rate, :family_rate
  validates_numericality_of :per_person_rate, :family_rate

  def validate
    errors.add(:per_person_rate, "should be greater than 0") if 
per_person_rate.nil? ||
                                                                per_person_rate 
< 0.01
    errors.add(:family_rate, "should be greater than 0") if 
family_rate.nil? ||
                                                            family_rate 
< 0.01
  end
end
--------------------------------------------------------------------------------

IN fee_test.rb
--------------------------------------------------------------------------------
require File.dirname(__FILE__) + '/../test_helper'

class FeeTest < ActiveSupport::TestCase
  # Replace this with your real tests.
  def test_truth
    assert true
  end

  def test_invalid_with_empty_attribute
    fee=Fee.new
    assert !fee.valid?
    assert fee.errors.invalid?(:per_person_rate)
    assert fee.errors.invalid?(:family_rate)
  end

  def test_positive_per_person_rate
    fee=Fee.new()

    fee.per_person_rate = -1.0
    assert !fee.valid?
    assert_equal "should be greater than 0", 
fee.errors.on(:per_person_rate)

    fee.per_person_rate = 0.0
    assert !fee.valid?
    assert_equal "should be greater than 0", 
fee.errors.on(:per_person_rate)

    fee.per_person_rate = 1.0
    assert fee.valid?
  end

  def test_positive_family_rate
    fee=Fee.new()

    fee.family_rate = -1
    assert !fee.valid?
    assert_equal "should be greater than 0", fee.errors.on(:family_rate)

    fee.family_rate = 0
    assert !fee.valid?
    assert_equal "should be greate than 0", fee.errors.on(:family_rate)

    fee.family_rate = 1
    assert fee.valid?
  end

end
--------------------------------------------------------------------------------

I'm just copying from the book with very (almost no) changes. So, I 
can't figure out why here. thanks
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to