Skip to content

Commit

Permalink
Allow Time.between to receive :between to deliver time in range
Browse files Browse the repository at this point in the history
Closes #675
  • Loading branch information
doits authored and stympy committed Dec 26, 2016
1 parent f0dd0e0 commit 998b6d1
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
3 changes: 2 additions & 1 deletion lib/faker/time.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ class Time < Date

class << self
def between(from, to, period = :all, format = nil)
time_with_format(date_with_random_time(super(from, to), period), format)
time = period == :between ? rand(from..to) : date_with_random_time(super(from, to), period)
time_with_format(time, format)
end

def forward(days = 365, period = :all, format = nil)
Expand Down
10 changes: 10 additions & 0 deletions test/test_faker_time.rb
Original file line number Diff line number Diff line change
Expand Up @@ -109,5 +109,15 @@ def test_time_period
assert period_range.include?(result.hour.to_i), "#{[:random_backward, :random_between, :random_forward][index]}: \"#{result}\" expected to be included in Faker::Time::TIME_RANGES[:#{period}] range"
end
end

from = Time.now
to = Time.now + 100

100.times do
period = :between
random_between = @tester.between(from, to, period)
assert random_between >= from, "Expected >= \"#{from}\", but got #{random_between}"
assert random_between <= to , "Expected <= \"#{to}\", but got #{random_between}"
end
end
end

0 comments on commit 998b6d1

Please sign in to comment.