The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# $Id$

use strict;

use Test::More;
use XML::Atom::Util qw( iso2dt );

BEGIN {
    unless (eval { require DateTime; }) {
        plan skip_all => 'DateTime is required for tests';
    } else {
        plan tests => 12;
    }
}

my %tests = (
    '20030928' => '2003-09-28T00:00:00',
    '2003-09-28' => '2003-09-28T00:00:00',
    '2003-09-28T12:49:50' => '2003-09-28T12:49:50',
    '2003-09-28T12:49:50Z' => '2003-09-28T12:49:50',
    '2003-09-28T12:49:50-00:00' => '2003-09-28T12:49:50',
    '2003-09-28T12:49:50+00:00' => '2003-09-28T12:49:50',
    '2003-09-28T12:49:50-01:00' => '2003-09-28T13:49:50',
    '2003-09-28T12:49:50+01:00' => '2003-09-28T11:49:50',
    '2003-09-28T12:49:50-01:30' => '2003-09-28T14:19:50',
    '2003-09-28T12:49:50+01:30' => '2003-09-28T11:19:50',
    '2003-09-28T12:49:50+17:00' => '2003-09-27T19:49:50',
    '2003-09-28T12:49:50-17:00' => '2003-09-29T05:49:50',
);

for my $test (keys %tests) {
    is iso2ts($test), $tests{$test};
}

sub iso2ts { iso2dt($_[0])->iso8601 }