1use strict; 2 3use Test::More tests => 8; 4 5 6package DateTime::Format::ICal15; 7use DateTime::Format::Builder; 8 9DateTime::Format::Builder->create_class( 10 version => 4.00, 11 parsers => { 12 parse_datetime => [ { 13 params => [ qw( year month day hour minute second ) ], 14 regex => qr/^(\d\d\d\d)(\d\d)(\d\d)T(\d\d)(\d\d)(\d\d)$/, 15 } ] 16 }, 17); 18 19package main; 20 21my $sample = "20030716T163245"; 22my $newclass = "DateTime::Format::ICal15"; 23 24my $parser = $newclass->new(); 25cmp_ok ( $newclass->VERSION, '==', '4.00', "Version matches"); 26 27{ 28 my $dt = $parser->parse_datetime( $sample ); 29 isa_ok( $dt => "DateTime" ); 30 my %methods = qw( 31 hour 16 minute 32 second 45 32 year 2003 month 7 day 16 33 ); 34 while (my ($method, $expected) = each %methods) 35 { 36 is( $dt->$method() => $expected, 37 "\$dt->$method() == $expected" ); 38 } 39} 40