File: C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/tzinfo-1.2.11/test/tc_data_timezone.rb
require File.join(File.expand_path(File.dirname(__FILE__)), 'test_utils')
include TZInfo
class TCDataTimezone < Minitest::Test
class TestTimezoneInfo < TimezoneInfo
attr_reader :utc
attr_reader :local
attr_reader :utc_to
attr_reader :utc_from
def initialize(identifier, utc_period, local_periods, transitions_up_to)
super(identifier)
@utc_period = utc_period
@local_periods = local_periods || []
@transitions_up_to = transitions_up_to
end
def period_for_utc(utc)
@utc = utc
@utc_period
end
def periods_for_local(local)
@local = local
@local_periods
end
def transitions_up_to(utc_to, utc_from = nil)
@utc_to = utc_to
@utc_from = utc_from
@transitions_up_to
end
end
def test_identifier
tz = DataTimezone.new(TestTimezoneInfo.new('Test/Zone', nil, [], []))
assert_equal('Test/Zone', tz.identifier)
end
def test_period_for_utc
# Don't need actual TimezonePeriods. DataTimezone isn't supposed to do
# anything with them apart from return them.
period = Object.new
tti = TestTimezoneInfo.new('Test/Zone', period, [], [])
tz = DataTimezone.new(tti)
t = Time.utc(2006, 6, 27, 22, 50, 12)
assert_same(period, tz.period_for_utc(t))
assert_same(t, tti.utc)
end
def test_periods_for_local
# Don't need actual TimezonePeriods. DataTimezone isn't supposed to do
# anything with them apart from return them.
periods = [Object.new, Object.new]
tti = TestTimezoneInfo.new('Test/Zone', nil, periods, [])
tz = DataTimezone.new(tti)
t = Time.utc(2006, 6, 27, 22, 50, 12)
assert_same(periods, tz.periods_for_local(t))
assert_same(t, tti.local)
end
def test_periods_for_local_not_found
periods = []
tti = TestTimezoneInfo.new('Test/Zone', nil, periods, [])
tz = DataTimezone.new(tti)
t = Time.utc(2006, 6, 27, 22, 50, 12)
assert_same(periods, tz.periods_for_local(t))
assert_same(t, tti.local)
end
def test_transitions_up_to
# Don't need actual TimezoneTransition instances. DataTimezone isn't
# supposed to do anything with them apart from return them.
transitions = [Object.new, Object.new]
tti = TestTimezoneInfo.new('Test/Zone', nil, nil, transitions)
tz = DataTimezone.new(tti)
utc_to = Time.utc(2013, 1, 1, 0, 0, 0)
utc_from = Time.utc(2012, 1, 1, 0, 0, 0)
assert_same(transitions, tz.transitions_up_to(utc_to, utc_from))
assert_same(utc_to, tti.utc_to)
assert_same(utc_from, tti.utc_from)
end
def test_canonical_identifier
tz = DataTimezone.new(TestTimezoneInfo.new('Test/Zone', nil, [], []))
assert_equal('Test/Zone', tz.canonical_identifier)
end
def test_canonical_zone
tz = DataTimezone.new(TestTimezoneInfo.new('Test/Zone', nil, [], []))
assert_same(tz, tz.canonical_zone)
end
end