spec/attributes_spec.rb in simple_model-1.2.25 vs spec/attributes_spec.rb in simple_model-1.2.26
- old
+ new
@@ -168,10 +168,54 @@
@default.nap = "yep"
@default.hop.should eql("hop")
end
end
+ context 'number and date/time attributes' do
+ before(:all) do
+ class NumDateTime
+ include SimpleModel::Attributes
+ has_date :my_date
+ has_time :my_time
+ has_int :my_int
+ has_int :blank_int, :allow_blank => true
+ has_decimal :my_decimal
+ has_decimal :blank_decimal, :allow_blank => true
+ has_float :my_float
+ has_attribute :my_attr
+ has_boolean :my_boolean
+ end
+ end
+ context "default options for number attributes" do
+ context "set with blank value" do
+ it "should not initialize" do
+ num_date_time = NumDateTime.new(:my_date => nil, :my_time => "", :my_int => " ", :my_decimal => nil, :my_float => '')
+ expect(num_date_time.initialized?(:my_date)).to eql(false)
+ expect(num_date_time.initialized?(:my_time)).to eql(false)
+ expect(num_date_time.initialized?(:my_int)).to eql(false)
+ expect(num_date_time.initialized?(:my_decimal)).to eql(false)
+ expect(num_date_time.initialized?(:my_float)).to eql(false)
+ end
+ end
+ context "override to allow_blank" do
+ it "should not initialize" do
+ num_date_time = NumDateTime.new(:blank_int => nil, :blank_decimal => "")
+ expect(num_date_time.initialized?(:blank_int)).to eql(true)
+ expect(num_date_time.initialized?(:blank_decimal)).to eql(true)
+ end
+ end
+ end
+
+ context "set with blank value" do
+ it "should not initialize" do
+ num_date_time = NumDateTime.new(:my_attr => nil, :my_boolean => "")
+ expect(num_date_time.initialized?(:my_attr)).to eql(true)
+ expect(num_date_time.initialized?(:my_boolean)).to eql(true)
+ end
+ end
+ end
+
context 'options with conditional' do
before(:all) do
class WithConditional
include SimpleModel::Attributes
has_date :my_date, :if => lambda {|obj,val| !val.blank?}
@@ -275,12 +319,12 @@
MyBase.new(:other => true).bar?.should eql(true)
NewerBase.new(:other => true).bar?.should eql(true)
end
it "should properly alias attributes from parent class" do
- nb = NewestBase.new(:some_amount => 1.0)
- nb.other_amount.should eql(1.0.to_d)
- nb.amount.should eql(1.0.to_d)
+ nb = NewestBase.new(:some_amount => 1.0)
+ nb.other_amount.should eql(1.0.to_d)
+ nb.amount.should eql(1.0.to_d)
end
end
after(:all) do
[:OnGet,:TestDefault,:TestInit,:MyBase,:NewerBase].each do |test_klass|