use Test::More 'no_plan'; use Test::Data qw(Scalar); use strict; use Brick::Bucket; use Brick::Numbers; my $class = 'Brick::Bucket'; use_ok( $class ); my $bucket = $class->new; isa_ok( $bucket, $class ); # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # good entry { my $code_ref = sub { 5 }; my $sub = $bucket->add_to_bucket( { code => $code_ref, name => 'Fiver', description => 'Returns 5', } ); isa_ok( $sub, ref sub {} ); } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # bad entry while (0 ){ my $entry = $bucket->add_to_bucket( { code => '', name => 'Fiver', description => 'Returns 5', } ); undef_ok( $entry, "Passing something other than a code ref returns undef" ); } # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # can_ok( $class, 'number_within_range' ); can_ok( $class, '__compose_satisfy_all' ); $bucket->add_to_bucket( { code => $bucket->number_within_range( { qw( field in_number minimum 5 maximum 10 inclusive 1 ) } ) } ); use Data::Dumper; #print STDERR Data::Dumper->Dump( [ $bucket ], [qw(bucket)] ); __END__ my $level = 0; foreach my $tuple ( map { [ $bucket->{$_}{code}, $bucket->{$_}{name} ] } keys %{ $bucket } ) { #print "Sub is $sub\n"; my @uses = ( [ $level, $tuple->[0] ] ); #print Data::Dumper->Dump( [ \@uses ], [qw(uses)] ); while( my $pair = shift @uses ) { my $entry = $bucket->get_from_bucket( $pair->[1] ); print STDERR "\t" x $pair->[0], $entry->get_name, "\n"; unshift @uses, map { [ $pair->[0] + 1, $_ ] } @{ $entry->get_comprises( $pair->[1] ) }; #print Data::Dumper->Dump( [ \@uses ], [qw(uses)] ); } print "\n"; }