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|