Blob Blame History Raw
use strict;
use warnings;

use Test::More;

use DateTime::Format::Builder;

my @tests = (

    # Simple dates
    [ '%Y-%m-%d',          '1998-12-31' ],
    [ '%y-%m-%d',          '98-12-31' ],
    [ '%Y years, %j days', '1998 years, 312 days' ],
    [ '%b %d, %Y',         'Jan 24, 2003' ],
    [ '%B %d, %Y',         'January 24, 2003' ],

    # Simple times
    [ '%H:%M:%S',    '23:45:56' ],
    [ '%l:%M:%S %p', '12:34:56 PM' ],

    # With Nanoseconds
    [ '%H:%M:%S.%N',  '23:45:56.123456789' ],
    [ '%H:%M:%S.%6N', '23:45:56.123456' ],
    [ '%H:%M:%S.%3N', '23:45:56.123' ],

    # Complex dates
    [ '%Y;%j = %Y-%m-%d',      '2003;056 = 2003-02-25' ],
    [ q|%d %b '%y = %Y-%m-%d|, q|25 Feb '03 = 2003-02-25| ],
);

for my $test (@tests) {
    my ( $pattern, $data ) = @$test;
    my $parser
        = DateTime::Format::Builder->create_parser( strptime => $pattern );
    my $parsed = $parser->parse( 'DateTime::Format::Builder', $data );
    isa_ok( $parsed => 'DateTime' );
    is( $parsed->strftime($pattern) => $data, $pattern );
}

done_testing();