/
cleanup.t
60 lines (45 loc) · 1.28 KB
/
cleanup.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
use strict;
use warnings;
use File::Temp ();
use Cwd qw/getcwd/;
use lib 't';
use MyTestHelper;
use Test::More;
my $old = getcwd;
my $dir = File::Temp->newdir;
chdir $dir or die "Cannot chdir to $dir\n";
open my $verbose_handle, '>', \my $verbose;
open my $info_handle, '>', \my $info;
{
package MyTestClass;
use Moo;
with 'Moodule::Build::Role::CleanupHelper';
sub log_info { print $info_handle @_ }
sub log_verbose { print $verbose_handle @_ }
sub depends_on { 1 }
}
subtest 'add via accessor' => sub {
my $filename = 'testfile';
my (undef, $file) = make_file( qw/File Test/, $filename, 'Testing', {test => 1} );
my $mb = MyTestClass->new;
$mb->add_to_cleanup($file);
$verbose = $info = '';
$mb->ACTION_clean;
ok( $info, 'clean message' );
like $verbose, qr/\Q$filename/, 'file deletion message';
ok( ! -e $file, 'File removed' );
};
subtest 'add via constructor' => sub {
my $filename = 'testfile';
my (undef, $file) = make_file( qw/File Test/, $filename, 'Testing', {test => 1} );
my $mb = MyTestClass->new(
cleanup => { $file => 1 },
);
$verbose = $info = '';
$mb->ACTION_clean;
ok( $info, 'clean message' );
like $verbose, qr/\Q$filename/, 'file deletion message';
ok( ! -e $file, 'File removed' );
};
chdir $old;
done_testing;