|
Packit |
9002b2 |
use strict;
|
|
Packit |
9002b2 |
use warnings;
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
use Test::More;
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
use DateTime::Format::Builder;
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
SKIP: {
|
|
Packit |
9002b2 |
my @mods;
|
|
Packit |
9002b2 |
for (qw( HTTP Mail IBeat )) {
|
|
Packit |
9002b2 |
my $mod = "DateTime::Format::$_";
|
|
Packit |
9002b2 |
eval "require $mod";
|
|
Packit |
9002b2 |
push @mods, $mod if $@;
|
|
Packit |
9002b2 |
}
|
|
Packit |
9002b2 |
skip "@mods not installed.", 3 if @mods;
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
eval q|
|
|
Packit |
9002b2 |
package DTFB::Quick;
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
use DateTime::Format::Builder (
|
|
Packit |
9002b2 |
parsers => { parse_datetime => [
|
|
Packit |
9002b2 |
{ Quick => 'DateTime::Format::HTTP' },
|
|
Packit |
9002b2 |
{ Quick => 'DateTime::Format::Mail' },
|
|
Packit |
9002b2 |
{ Quick => 'DateTime::Format::IBeat' },
|
|
Packit |
9002b2 |
]});
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
1;
|
|
Packit |
9002b2 |
|;
|
|
Packit |
9002b2 |
die $@ if $@;
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
my $get = sub {
|
|
Packit |
9002b2 |
eval {
|
|
Packit |
9002b2 |
DTFB::Quick->parse_datetime( $_[0] )->set_time_zone('UTC')
|
|
Packit |
9002b2 |
->datetime;
|
|
Packit |
9002b2 |
};
|
|
Packit |
9002b2 |
};
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
for ( '@d19.07.03 @704', '20030719T155345Z' ) {
|
|
Packit |
9002b2 |
my $dt = $get->($_);
|
|
Packit |
9002b2 |
is $dt, "2003-07-19T15:53:45", "Can parse [$_]";
|
|
Packit |
9002b2 |
}
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
for ('gibberish') {
|
|
Packit |
9002b2 |
my $dt = $get->($_);
|
|
Packit |
9002b2 |
ok( !defined $dt, "Shouldn't parse [$_]" );
|
|
Packit |
9002b2 |
}
|
|
Packit |
9002b2 |
}
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
done_testing();
|