ec3c8bb79a6efca83975816a91aa803876fd9f0e
[urisagit/Perl-Docs.git] / t / prepend_file.t
1
2 use strict ;
3 use warnings ;
4
5 use lib qw(t) ;
6
7 use File::Slurp qw( read_file write_file prepend_file ) ;
8 use Test::More ;
9
10 use TestDriver ;
11
12 my $file = 'prepend_file' ;
13 my $existing_data = <<PRE ;
14 line 1
15 line 2
16 more
17 PRE
18
19 my $tests = [
20         {
21                 name    => 'prepend null',
22                 sub     => \&prepend_file,
23                 prepend_data    => '',
24                 pretest => sub {
25                         my( $test ) = @_ ;
26                         write_file( $file, $existing_data ) ;
27                         my $prepend_data = $test->{prepend_data} ;
28                         $test->{args} = [
29                                 $file,
30                                 $prepend_data,
31                         ] ;
32                         $test->{expected} = "$prepend_data$existing_data" ;
33                 },
34                 posttest => sub { $_[0]->{result} = read_file( $file ) },
35         },
36         {
37                 name    => 'prepend line',
38                 sub     => \&prepend_file,
39                 prepend_data => "line 0\n",
40                 pretest => sub {
41                         my( $test ) = @_ ;
42                         write_file( $file, $existing_data ) ;
43                         my $prepend_data = $test->{prepend_data} ;
44                         $test->{args} = [
45                                 $file,
46                                 $prepend_data,
47                         ] ;
48                         $test->{expected} = "$prepend_data$existing_data" ;
49                 },
50                 posttest => sub { $_[0]->{result} = read_file( $file ) },
51         },
52         {
53                 name    => 'prepend partial line',
54                 sub     => \&prepend_file,
55                 prepend_data => 'partial line',
56                 pretest => sub {
57                         my( $test ) = @_ ;
58                         write_file( $file, $existing_data ) ;
59                         my $prepend_data = $test->{prepend_data} ;
60                         $test->{args} = [
61                                 $file,
62                                 $prepend_data,
63                         ] ;
64                         $test->{expected} = "$prepend_data$existing_data" ;
65                 },
66                 posttest => sub { $_[0]->{result} = read_file( $file ) },
67         },
68 ] ;
69
70 test_driver( $tests ) ;
71
72 unlink $file ;
73
74 exit ;