1#!/usr/bin/perl -w
2use lib 'inc';
3use strict;
4use blib;
5
6use Test::More tests => 4;
7BEGIN { use_ok 'DateTime::Format::Builder' }
8
9SKIP: {
10    my @three = map { "DateTime::Format::$_" } qw( HTTP Mail IBeat );
11    my @fails;
12    for my $mod (@three)
13    {
14        eval "require $mod";
15        push @fails, $mod if $@;
16    }
17    skip "@fails not installed.", 3 if @fails;
18
19    eval qq|package DateTime::Format::Fall;|
20        .join("", map { "use $_;\n" } @three )
21        .q|
22        use DateTime::Format::Builder (
23        parsers => { parse_datetime => [
24        |.join("", map {
25                qq|sub { eval { $_->parse_datetime( \$_[1] ) } },\n|
26            } @three )
27        .q|
28        ]});
29
30        1;
31    |;
32
33    die $@ if $@;
34
35    my $get = sub { eval {
36            DateTime::Format::Fall
37                ->parse_datetime($_[0])
38                ->set_time_zone( 'UTC' )
39                ->datetime
40        } };
41
42
43    for ( '@d19.07.03 @704', '20030719T155345Z' )
44    {
45        my $dt = $get->( $_ );
46        is $dt, "2003-07-19T15:53:45", "Can parse [$_]";
47    }
48
49    for ( 'gibberish' )
50    {
51        my $dt = $get->( $_ );
52        ok( !defined $dt, "Shouldn't parse [$_]" )
53    }
54}
55