diff --git a/pedometer/models/trial.rb b/pedometer/models/trial.rb index cb1c76e97..1cb44ab92 100644 --- a/pedometer/models/trial.rb +++ b/pedometer/models/trial.rb @@ -5,8 +5,8 @@ class Trial def initialize(name = nil, method = nil, rate = nil, steps = nil) @name = name.to_s.delete(' ') @method = method.to_s.delete(' ') - @rate = Integer(rate.to_s) unless rate.to_s.empty? rescue raise('Invalid rate') - @steps = Integer(steps.to_s) unless steps.to_s.empty? rescue raise('Invalid steps') + @rate = Integer(rate.to_s) unless rate.to_s.empty? + @steps = Integer(steps.to_s) unless steps.to_s.empty? raise('Invalid rate') if @rate && (@rate <= 0) raise('Invalid steps') if @steps && (@steps < 0) diff --git a/pedometer/test/unit/trial_test.rb b/pedometer/test/unit/trial_test.rb index b131eb3ec..7165dc72f 100644 --- a/pedometer/test/unit/trial_test.rb +++ b/pedometer/test/unit/trial_test.rb @@ -24,12 +24,18 @@ def test_create_with_rate assert_equal 100, Trial.new(nil, nil, nil).rate assert_equal 100, Trial.new(nil, nil, '').rate - ['invalid rate', 0, '0', -1, '-1', 2.5, '2.5'].each do |rate| + [0, '0', -1, '-1'].each do |rate| assert_raise_with_message(RuntimeError, 'Invalid rate') do Trial.new(nil, nil, rate) end end + ['invalid rate', 2.5, '2.5'].each do |rate| + assert_raises(ArgumentError) do + Trial.new(nil, nil, rate) + end + end + assert_equal 1, Trial.new(nil, nil, 1).rate assert_equal 1, Trial.new(nil, nil, '1').rate assert_equal 100, Trial.new(nil, nil, 100).rate @@ -41,12 +47,18 @@ def test_create_with_steps assert_nil Trial.new(nil, nil, nil, nil).steps assert_nil Trial.new(nil, nil, nil, '').steps - ['invalid steps', -1, '-1', 2.5, '2.5'].each do |steps| + [-1, '-1'].each do |steps| assert_raise_with_message(RuntimeError, 'Invalid steps') do Trial.new(nil, nil, nil, steps) end end + ['invalid steps', 2.5, '2.5'].each do |steps| + assert_raises(ArgumentError) do + Trial.new(nil, nil, nil, steps) + end + end + assert_equal 0, Trial.new(nil, nil, nil, 0).steps assert_equal 0, Trial.new(nil, nil, nil, '0').steps assert_equal 1, Trial.new(nil, nil, nil, 1).steps