From 998b6d1d2e656e0f07894e0fdb3b2ee02a7ce734 Mon Sep 17 00:00:00 2001 From: Markus Doits Date: Mon, 26 Dec 2016 05:28:29 -0800 Subject: [PATCH] Allow Time.between to receive `:between` to deliver time in range Closes #675 --- lib/faker/time.rb | 3 ++- test/test_faker_time.rb | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/faker/time.rb b/lib/faker/time.rb index d9852a463a..6bb6f9659a 100755 --- a/lib/faker/time.rb +++ b/lib/faker/time.rb @@ -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) diff --git a/test/test_faker_time.rb b/test/test_faker_time.rb index d146e0554b..6df4389fda 100755 --- a/test/test_faker_time.rb +++ b/test/test_faker_time.rb @@ -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