package Zucchini::Test; # vim: ts=8 sts=4 et sw=4 sr sta use strict; use warnings; use Path::Class; use Test::More; use File::Find; sub add_to_tree_list { my $cfg = shift; my $file = shift; my $dir = shift; my $root = shift; my $listref = shift; # don't add ignored files to the list foreach my $ignore_me (@{ $cfg->get_siteconfig->{ignore_files} }) { my $regex = qr/ $ignore_me /x; return if ($file =~ $regex); } # push the information onto the list $dir =~ s{\A${root}}{}; push @{$listref}, file($dir, $file); } sub compare_input_output { my $zucchini_cfg = shift; my (@input_tree, @output_tree); # get a list of files in the input dir find( { wanted => sub { -r && do { add_to_tree_list( $zucchini_cfg, $_, $File::Find::dir, #$zucchini_tpl->get_config->get_siteconfig->{source_dir}, $zucchini_cfg->get_siteconfig->{source_dir}, \@input_tree ); }; }, }, #$zucchini_tpl->get_config->get_siteconfig->{source_dir}, $zucchini_cfg->get_siteconfig->{source_dir}, ); # get a list of files in the output dir find( { wanted => sub { -r && do { add_to_tree_list( $zucchini_cfg, $_, $File::Find::dir, #$zucchini_tpl->get_config->get_siteconfig->{output_dir}, $zucchini_cfg->get_siteconfig->{output_dir}, \@output_tree ); }; }, }, #$zucchini_tpl->get_config->get_siteconfig->{output_dir}, $zucchini_cfg->get_siteconfig->{output_dir}, ); # we should have the same files in the template directory # and the output directory is_deeply(\@input_tree, \@output_tree, q{correct files in output directory}); } 1; # just be true