|
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 |
{
|
|
Packit |
9002b2 |
eval q|
|
|
Packit |
9002b2 |
package DTFB::Sub;
|
|
Packit |
9002b2 |
use base qw( DateTime::Format::Builder );
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
sub on_fail {
|
|
Packit |
9002b2 |
return undef;
|
|
Packit |
9002b2 |
}
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
1;
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
package DTFB::OnFailSubTest;
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
BEGIN {
|
|
Packit |
9002b2 |
DTFB::Sub->import(
|
|
Packit |
9002b2 |
parsers => {
|
|
Packit |
9002b2 |
parse_datetime => [
|
|
Packit |
9002b2 |
{strptime=> '%m/%d/%Y'},
|
|
Packit |
9002b2 |
{strptime=> '%Y/%m/%d'},
|
|
Packit |
9002b2 |
]
|
|
Packit |
9002b2 |
}
|
|
Packit |
9002b2 |
);
|
|
Packit |
9002b2 |
}
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
1;
|
|
Packit |
9002b2 |
|;
|
|
Packit |
9002b2 |
ok( !$@, "Made class" );
|
|
Packit |
9002b2 |
diag $@ if $@;
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
my $o = DTFB::OnFailSubTest->new;
|
|
Packit |
9002b2 |
my $good_parse = $o->parse_datetime("2003/08/09");
|
|
Packit |
9002b2 |
isa_ok( $good_parse, 'DateTime' );
|
|
Packit |
9002b2 |
is( $good_parse->year => 2003, "Year good" );
|
|
Packit |
9002b2 |
is( $good_parse->month => 8, "Month good" );
|
|
Packit |
9002b2 |
is( $good_parse->day => 9, "Day good" );
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
my $bad_parse = eval { $o->parse_datetime("Fnerk") };
|
|
Packit |
9002b2 |
ok( !$@, "Bad parse gives no error" );
|
|
Packit |
9002b2 |
diag $@ if $@;
|
|
Packit |
9002b2 |
ok( ( !defined($bad_parse) ), "Bad parse correctly gives undef" );
|
|
Packit |
9002b2 |
}
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
done_testing();
|