Commit 7225f597649f6079c85e9a4567092f533862d5ee

Authored by Antonio Terceiro
1 parent 1668fe7d

Now really avoid division by zero

(ActionItem1682)
app/models/profile_list_block.rb
... ... @@ -21,7 +21,7 @@ class ProfileListBlock < Block
21 21 end
22 22  
23 23 def randomizer
24   - @randomizer ||= "(profiles.id % #{rand(profile_count + 1)})"
  24 + @randomizer ||= "(profiles.id % #{rand(profile_count) + 1})"
25 25 end
26 26  
27 27 # the title of the block. Probably will be overriden in subclasses.
... ...
test/unit/profile_list_block_test.rb
... ... @@ -153,8 +153,15 @@ class ProfileListBlockTest < Test::Unit::TestCase
153 153 should 'randomize using modulo operator and random number' do
154 154 block = ProfileListBlock.new
155 155 block.expects(:profile_count).returns(10)
156   - block.expects(:rand).with(11).returns(5)
157   - assert_match /profiles.id % 5/, block.randomizer
  156 + block.expects(:rand).with(10).returns(5)
  157 + assert_match /profiles.id % 6/, block.randomizer
  158 + end
  159 +
  160 + should 'not divide by zero' do
  161 + block = ProfileListBlock.new
  162 + block.stubs(:profile_count).returns(0)
  163 + block.expects(:rand).returns(0)
  164 + assert_no_match /profiles.id % 0/, block.randomizer
158 165 end
159 166  
160 167 end
... ...