|
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 |
# Does verbose() work properly?
|
|
Packit |
9002b2 |
SKIP: {
|
|
Packit |
9002b2 |
skip "This test requires perl 5.8", 4 unless $] >= 5.007;
|
|
Packit |
9002b2 |
skip "Verbose is temporarily out of it", 4;
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
my $str;
|
|
Packit |
9002b2 |
undef $SampleClass1::fh; # just to un-warn
|
|
Packit |
9002b2 |
eval q{
|
|
Packit |
9002b2 |
open $SampleClass1::fh, '>', \$str
|
|
Packit |
9002b2 |
or die "Cannot open string for writing!";
|
|
Packit |
9002b2 |
};
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
eval q[
|
|
Packit |
9002b2 |
package SampleClass1;
|
|
Packit |
9002b2 |
use DateTime::Format::Builder
|
|
Packit |
9002b2 |
verbose => $SampleClass1::fh,
|
|
Packit |
9002b2 |
parsers => {
|
|
Packit |
9002b2 |
parse_datetime => [
|
|
Packit |
9002b2 |
[
|
|
Packit |
9002b2 |
preprocess => sub { my %args = @_; $args{input} },
|
|
Packit |
9002b2 |
],
|
|
Packit |
9002b2 |
{
|
|
Packit |
9002b2 |
regex => qr/^(\d{4})(\d\d)(d\d)(\d\d)(\d\d)(\d\d)$/,
|
|
Packit |
9002b2 |
params => [qw( year month day hour minute second )],
|
|
Packit |
9002b2 |
on_fail => sub { my %args = @_; $args{input} },
|
|
Packit |
9002b2 |
},
|
|
Packit |
9002b2 |
{
|
|
Packit |
9002b2 |
preprocess => sub { my %args = @_; $args{input} },
|
|
Packit |
9002b2 |
postprocess => sub { my %args = @_; $args{input} },
|
|
Packit |
9002b2 |
on_match => sub { my %args = @_; $args{input} },
|
|
Packit |
9002b2 |
regex => qr/^(\d{4})(\d\d)(\d\d)$/,
|
|
Packit |
9002b2 |
params => [qw( year month day )],
|
|
Packit |
9002b2 |
},
|
|
Packit |
9002b2 |
{
|
|
Packit |
9002b2 |
length => 8,
|
|
Packit |
9002b2 |
regex => qr/^abcdef$/,
|
|
Packit |
9002b2 |
params => [qw( year month day )],
|
|
Packit |
9002b2 |
}
|
|
Packit |
9002b2 |
],
|
|
Packit |
9002b2 |
};
|
|
Packit |
9002b2 |
];
|
|
Packit |
9002b2 |
ok( !$@, "No errors when creating the class." );
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
diag $@ if $@;
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
my $parser = SampleClass1->new();
|
|
Packit |
9002b2 |
isa_ok( $parser => 'SampleClass1' );
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
my $input = "20040506";
|
|
Packit |
9002b2 |
my $dt = eval { $parser->parse_datetime($input) };
|
|
Packit |
9002b2 |
isa_ok( $dt => 'DateTime' );
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
# Should have some data awaiting us now.
|
|
Packit |
9002b2 |
close $SampleClass1::fh;
|
|
Packit |
9002b2 |
like( $str, qr/$input/, "Logging data contains input." );
|
|
Packit |
9002b2 |
}
|
|
Packit |
9002b2 |
|
|
Packit |
9002b2 |
done_testing();
|