+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use Test::More tests => 8;
+use Test::NoWarnings;
+
+use autodie;
+use File::Temp qw(tempdir);
+use File::Path qw(remove_tree);
+
+BEGIN { use_ok('File::Rewrite', 'fileset'); }
+
+my $target = tempdir();
+
+sub testfileset {
+ my ($name, $input, $params, $result) = @_;
+
+ my $filename = "$target/$name";
+ open my $file, '>', $filename;
+ print {$file} $input;
+ close $file;
+
+ is(fileset($filename, @$params), $result, $name)
+ or diag(explain $input);
+}
+
+my $BASICBODY = "replace$/noremove$/remove$/.$/";
+
+testfileset('no match', $BASICBODY, [undef, 'nomatch'], 0);
+testfileset('remove string', $BASICBODY, [undef, 'remove'], 1);
+testfileset('remove empty', "$/.$/ $/$/", [undef, ''], 2);
+testfileset('remove regex', $BASICBODY, [undef, qr/^re/], 2);
+testfileset('remove all', $BASICBODY, [undef, qr/./], 4);
+
+is(remove_tree($target), 6, 'no unexpected files');
+