6 use Test::More tests => 13;
10 use File::Temp qw(tempdir);
11 use File::Path qw(remove_tree);
13 BEGIN { use_ok('File::Rewrite', 'fileset'); }
15 my $target = tempdir();
18 my ($name, $input, $params, $result) = @_;
20 my $filename = "$target/$name";
21 open my $file, '>', $filename;
25 is(fileset($filename, @$params), $result, $name)
26 or diag(explain $input);
29 my $BASICBODY = "replace$/noremove$/remove$/.$/";
31 testfileset('no match', $BASICBODY, [undef, 'nomatch'], 0);
32 testfileset('remove string', $BASICBODY, [undef, 'remove'], 1);
33 testfileset('remove empty', "$/.$/ $/$/", [undef, ''], 2);
34 testfileset('remove regex', $BASICBODY, [undef, qr/^re/], 2);
35 testfileset('remove all', $BASICBODY, [undef, qr/./], 4, '');
37 testfileset('add string', "foo$/", ['bar'], 1, "foo$/bar$/");
38 testfileset('keep string', "foo$/bar$/", ['foo'], 0, "foo$/bar$/");
39 testfileset('replace string', "1$/2$/3$/", [4, 1], 2, "2$/3$/4$/");
40 testfileset('replace all', $BASICBODY, ['', qr/^re/], 3, "noremove$/.$/$/");
41 testfileset('keep first', "foo$/bar$/foo$/", ['foo'], 1, "foo$/bar$/");
43 is(remove_tree($target), 11, 'no unexpected files');