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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
use strict ;
use warnings ;
use lib qw(t) ;
use File::Slurp qw( read_file write_file prepend_file ) ;
use Test::More ;
use TestDriver ;
my $file = 'prepend_file' ;
my $existing_data = <<PRE ;
line 1
line 2
more
PRE
my $tests = [
{
name => 'prepend null',
sub => \&prepend_file,
prepend_data => '',
pretest => sub {
my( $test ) = @_ ;
write_file( $file, $existing_data ) ;
my $prepend_data = $test->{prepend_data} ;
$test->{args} = [
$file,
$prepend_data,
] ;
$test->{expected} = "$prepend_data$existing_data" ;
},
posttest => sub { $_[0]->{result} = read_file( $file ) },
},
{
name => 'prepend line',
sub => \&prepend_file,
prepend_data => "line 0\n",
pretest => sub {
my( $test ) = @_ ;
write_file( $file, $existing_data ) ;
my $prepend_data = $test->{prepend_data} ;
$test->{args} = [
$file,
$prepend_data,
] ;
$test->{expected} = "$prepend_data$existing_data" ;
},
posttest => sub { $_[0]->{result} = read_file( $file ) },
},
{
name => 'prepend partial line',
sub => \&prepend_file,
prepend_data => 'partial line',
pretest => sub {
my( $test ) = @_ ;
write_file( $file, $existing_data ) ;
my $prepend_data = $test->{prepend_data} ;
$test->{args} = [
$file,
$prepend_data,
] ;
$test->{expected} = "$prepend_data$existing_data" ;
},
posttest => sub { $_[0]->{result} = read_file( $file ) },
},
] ;
test_driver( $tests ) ;
unlink $file ;
exit ;
|