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