LP#1635737: Unit tests for DST and date math
[OpenSRF.git] / src / perl / t / 09-Utils-interval_to_seconds.t
1 #!perl 
2
3
4 use DateTime::Format::ISO8601;
5 use Test::More tests => 10;
6
7 BEGIN {
8         use_ok( 'OpenSRF::Utils' );
9 }
10
11 is (OpenSRF::Utils::interval_to_seconds('1 second'), 1);
12 is (OpenSRF::Utils::interval_to_seconds('1 minute'), 60);
13 is (OpenSRF::Utils::interval_to_seconds('1 hour'), 3600);
14 is (OpenSRF::Utils::interval_to_seconds('1 day'), 86400);
15 is (OpenSRF::Utils::interval_to_seconds('1 week'), 604800);
16 is (OpenSRF::Utils::interval_to_seconds('1 month'), 2628000);
17
18 # With context, no DST change
19 is (OpenSRF::Utils::interval_to_seconds('1 month',
20     DateTime::Format::ISO8601->new->parse_datetime('2017-02-04T23:59:59-04')), 2419200);
21
22 # With context, with DST change
23 is (OpenSRF::Utils::interval_to_seconds('1 month',
24     DateTime::Format::ISO8601->new->parse_datetime('2017-02-14T23:59:59-04')), 2415600);
25
26 is (OpenSRF::Utils::interval_to_seconds('1 year'), 31536000);
27 is (OpenSRF::Utils::interval_to_seconds('1 year 1 second'), 31536001);