From 822a81f5ede65bb0462b802c8906772629146947 Mon Sep 17 00:00:00 2001 From: Rafael Reggiani Manzo Date: Sat, 29 Mar 2014 14:34:02 -0300 Subject: [PATCH] MezuroRanges accepts -INF and +INF as values for baginning and end --- app/models/mezuro_range.rb | 17 ++++++++++++++--- spec/models/mezuro_range_spec.rb | 21 ++++++++++++++++++++- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/app/models/mezuro_range.rb b/app/models/mezuro_range.rb index 3f4bd58..1e9483e 100644 --- a/app/models/mezuro_range.rb +++ b/app/models/mezuro_range.rb @@ -2,11 +2,22 @@ require "validators/beginning_uniqueness_validator.rb" class MezuroRange < KalibroGatekeeperClient::Entities::Range include KalibroRecord - + attr_accessor :beginning, :end, :reading_id, :mezuro_configuration_id, :comments - validates :beginning, presence: true, beginning_uniqueness: true, numericality: true - validates :end, presence: true , numericality: true + validates :beginning, presence: true, beginning_uniqueness: true + validates :beginning, numericality: true, if: :non_infinite_beginning? + validates :end, presence: true + validates :end, numericality: true, if: :non_infinite_end? validates :reading_id, presence: true + private + + def non_infinite_end? + !(self.end == '-INF' || self.end == '+INF') + end + + def non_infinite_beginning? + val = !(self.beginning == '-INF' || self.beginning == '+INF') + end end diff --git a/spec/models/mezuro_range_spec.rb b/spec/models/mezuro_range_spec.rb index 8de8381..d5d01bc 100644 --- a/spec/models/mezuro_range_spec.rb +++ b/spec/models/mezuro_range_spec.rb @@ -7,10 +7,29 @@ describe MezuroRange do before :each do MezuroRange.expects(:ranges_of).with(subject.metric_configuration_id).at_least_once.returns([]) end - + it { should validate_presence_of(:beginning) } it { should validate_presence_of(:end) } it { should validate_presence_of(:reading_id) } + + context 'beginning and end numericality' do + it { should validate_presence_of(:beginning) } + it { should validate_presence_of(:end) } + + it 'should allow -INF and +INF to beginning' do + subject.beginning = '-INF' + subject.save + + subject.errors.messages.should be_empty + end + + it 'should allow -INF and +INF to end' do + subject.end = '-INF' + subject.save + + subject.errors.messages.should be_empty + end + end end end -- libgit2 0.21.2