#!/usr/bin/env perl
use strict;
use warnings;
use Test::More tests => 4;
use File::ShouldUpdate qw/ should_update should_update_multi /;
use Path::Tiny qw/ path tempdir tempfile cwd /;
my $dir = tempdir();
my $fh = $dir->child("foo.txt");
$fh->spew_raw("foo");
my $dep2 = $dir->child("dep2.txt");
$dep2->spew_raw("dep2");
my $new = $dir->child("new.txt");
{
# TEST
ok(
should_update( $new, ":", $fh, $dep2 ),
'should_update on non-existent target file'
);
$new->spew_raw("updated");
# TEST
ok(
scalar( !should_update( $new, ":", $fh, $dep2 ) ),
'should_update on updated file.',
);
}
{
my $new2 = $dir->child("new--2.pl");
my $newfiles = [ $new, $new2 ];
my $deps = [ $fh, $dep2 ];
my $call = sub {
return should_update_multi( $newfiles, ":", $deps );
};
# TEST
ok( scalar( $call->() ), 'should_update on non-existent target file' );
$new->spew_raw("updated");
$new2->spew_raw("updated");
# TEST
ok(
scalar( !scalar( $call->() ) ),
'should_update_multi on updated file.',
);
}