use Test::More 'no_plan'; my $class = 'Brick'; use_ok( $class ); my $brick = $class->new(); isa_ok( $brick, $class ); $ENV{DEBUG} ||= 0; use_ok( 'Brick::Dates' ); # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # { my @profile = ( [ last_year => _is_valid_date => { field => 'last_year', } ], [ next_year => _is_valid_date => { field => 'next_year', } ], [ unix_birthdate => _is_valid_date => { field => 'unix_birthdate', } ], [ invalid_day => _is_valid_date => { field => 'invalid_day', } ], [ invalid_month => _is_valid_date => { field => 'invalid_month', } ], [ invalid_format => _is_valid_date => { field => 'no_digits', } ], ); my %input = ( last_year => 20060613, next_year => 20071106, unix_birthdate => 19700101, invalid_day => 20070229, invalid_month => 20074229, no_digits => 'QBERT', ); my( $lint ) = $brick->profile_class->lint( \@profile ); is( keys %$lint, 0, "Profile is formatted correctly\n" ); print STDERR Data::Dumper->Dump( [$lint], [qw(lint)] ) if $ENV{DEBUG}; use Data::Dumper; my $profile = $brick->profile_class->new( $brick, \@profile ); isa_ok( $profile, $brick->profile_class ); if( $ENV{DEBUG} ) { print STDERR $profile->explain; } my $result = $brick->apply( $profile, \%input ); isa_ok( $result, ref [], "apply() returns an array reference" ); is( scalar @$result, scalar @profile, "Results have the same number of elements as the profile" ); if( $ENV{DEBUG } ) { #print STDERR Data::Dumper->Dump( [$result], [qw(result)] ); use Data::Dumper; foreach my $index ( 0 .. $#$result ) { my $entry = $result->[$index]; my $message = $entry->[2] ? 'passed' : ref $entry->[3] ? $entry->[3]->{message} : $entry->[3]; print STDERR "$entry->[0] checked by $entry->[1] which returned:\n\t$message\n"; } } }