Blame t/fall.t

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 @three = map { "DateTime::Format::$_" } qw( HTTP Mail IBeat );
Packit 9002b2
    my @fails;
Packit 9002b2
    for my $mod (@three) {
Packit 9002b2
        eval "require $mod";
Packit 9002b2
        push @fails, $mod if $@;
Packit 9002b2
    }
Packit 9002b2
    skip "@fails not installed.", 3 if @fails;
Packit 9002b2
Packit 9002b2
    eval qq|package DateTime::Format::Fall;|
Packit 9002b2
        . join( "", map { "use $_;\n" } @three ) . q|
Packit 9002b2
        use DateTime::Format::Builder (
Packit 9002b2
        parsers => { parse_datetime => [
Packit 9002b2
        |
Packit 9002b2
        . join(
Packit 9002b2
        "",
Packit 9002b2
        map { qq|sub { eval { $_->parse_datetime( \$_[1] ) } },\n| } @three
Packit 9002b2
        )
Packit 9002b2
        . q|
Packit 9002b2
        ]});
Packit 9002b2
Packit 9002b2
        1;
Packit 9002b2
    |;
Packit 9002b2
Packit 9002b2
    die $@ if $@;
Packit 9002b2
Packit 9002b2
    my $get = sub {
Packit 9002b2
        eval {
Packit 9002b2
            DateTime::Format::Fall->parse_datetime( $_[0] )
Packit 9002b2
                ->set_time_zone('UTC')->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();