1use strict;
2BEGIN { $^W = 1 }
3
4use Test::More tests => 7;
5use DateTime;
6use DateTime::Format::Epoch;
7
8my $dt = DateTime->new( year  => 1970, month => 1, day   => 1 );
9
10my $f = DateTime::Format::Epoch->new( epoch => $dt, type => 'bigint' );
11
12isa_ok($f, 'DateTime::Format::Epoch' );
13
14is($f->format_datetime($dt) + 0, 0, 'Epoch = 0');
15isa_ok($f->format_datetime($dt), 'Math::BigInt');
16
17$dt->set( hour => 1 );
18is($f->format_datetime($dt) + 0, 3600, 'Epoch + 1hour');
19
20$dt->set( day => 2, hour => 0 );
21is($f->format_datetime($dt) + 0, 24*3600, 'Epoch + 1day');
22
23$dt = DateTime->new( year => 2003, month => 4, day => 27,
24                     hour => 21, minute => 9, second => 57,
25                     nanosecond => 8e8, time_zone => 'Europe/Amsterdam' );
26
27is($f->format_datetime($dt) + 0, 1051470597, '"now"');
28
29$dt = DateTime->new( year => 1969, month => 12, day => 22 );
30is($f->format_datetime($dt), -10*24*3600, 'Epoch - 10days');
31