Sha256: d3191f1233476d2d6b5e197823a166e9577f9d23e3882a33c3882aabd116fe9c

Contents?: true

Size: 878 Bytes

Versions: 13

Compression:

Stored size: 878 Bytes

Contents

# encoding: UTF-8

require File.expand_path("./helper", File.dirname(__FILE__))

class Product < Ohm::Model
  include Ohm::NumberValidations

  attribute :price
  attribute :optional_price

  def validate
    assert_decimal :price
    assert_decimal :optional_price unless optional_price.to_s.empty?
  end
end

test "has error when empty" do
  product = Product.new(:price => nil)
  product.valid?

  assert [[:price, :not_decimal]] == product.errors
end

test "validation scenarios" do
  assert Product.new(:price => 0.10).valid?
  assert Product.new(:price => 1).valid?

  p = Product.new(:price => '1.')
  assert ! p.valid?
  assert [[:price, :not_decimal]] == p.errors
end

test "allows empty values through basic ruby conditions" do
  assert Product.new(:price => 10.1, :optional_price => nil).valid?
  assert Product.new(:price => 10.1, :optional_price => '').valid?
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
ohm-contrib-0.1.2 test/number_validations_test.rb
ohm-contrib-0.1.1 test/number_validations_test.rb
ohm-contrib-0.1.0 test/number_validations_test.rb
ohm-contrib-0.0.42 test/number_validations_test.rb
ohm-contrib-0.0.41 test/number_validations_test.rb
ohm-contrib-0.0.40 test/number_validations_test.rb
ohm-contrib-0.0.39 test/number_validations_test.rb
ohm-contrib-0.0.38 test/number_validations_test.rb
ohm-contrib-0.0.37 test/number_validations_test.rb
ohm-contrib-0.0.36 test/number_validations_test.rb
ohm-contrib-0.0.35 test/number_validations_test.rb
ohm-contrib-0.0.34 test/number_validations_test.rb
ohm-contrib-0.0.33 test/number_validations_test.rb