File: _compare_files.t

package info (click to toggle)
libtest-files-perl 0.26-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 352 kB
  • sloc: perl: 406; makefile: 7
file content (52 lines) | stat: -rw-r--r-- 1,831 bytes parent folder | download
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
use strict;
use warnings
  FATAL    => qw( all ),
  NONFATAL => qw( deprecated exec internal malloc newline once portable redefine recursion uninitialized );

use Test::Expander -tempdir => {};

use Test::Files::Constants qw( $FMT_DIFFERENT_SIZE $FMT_FIRST_FILE_ABSENT $FMT_SECOND_FILE_ABSENT );

const my $FIRST_FILE  => path( $TEMP_DIR )->child( 'first_file' );
const my $SECOND_FILE => path( $TEMP_DIR )->child( 'second_file' );

plan( 3 );

my $expected;
my $self = $CLASS->_init;

subtest 'compare existence only' => sub {
  plan( 3 );

  $self->options( { EXISTENCE_ONLY => 1 } );

  $expected = [ sprintf( $FMT_FIRST_FILE_ABSENT,  $FIRST_FILE, $SECOND_FILE ) ];
  is( $self->diag( [] )->$METHOD( 0, 1, $FIRST_FILE, $SECOND_FILE )->diag, $expected, 'second file missing' );

  $expected = [ sprintf( $FMT_SECOND_FILE_ABSENT, $FIRST_FILE, $SECOND_FILE ) ];
  is( $self->diag( [] )->$METHOD( 1, 0, $FIRST_FILE, $SECOND_FILE )->diag, $expected, 'first file missing' );

  $expected = [];
  is( $self->diag( [] )->$METHOD( 1, 1, $FIRST_FILE, $SECOND_FILE )->diag, $expected, 'both files exist' );
};

subtest 'compare size' => sub {
  plan( 2 );

  $self->options( { SIZE_ONLY => 1 } );

  $expected = [ sprintf( $FMT_DIFFERENT_SIZE, $FIRST_FILE, $SECOND_FILE, 1, 0 ) ];
  is( $self->diag( [] )->$METHOD( 1, 0, $FIRST_FILE, $SECOND_FILE )->diag, $expected, 'different size' );

  $expected = [];
  is( $self->diag( [] )->$METHOD( 1, 1, $FIRST_FILE, $SECOND_FILE )->diag, $expected, 'equal size' );
};

subtest 'compare content' => sub {
  plan( 2 );

  $self->options( { CONTEXT => 2, STYLE => 'OldStyle'} );

  isnt( $self->diag( [] )->$METHOD( '1', '0', $FIRST_FILE, $SECOND_FILE )->diag, [], 'different content' );
  is  ( $self->diag( [] )->$METHOD( '1', '1', $FIRST_FILE, $SECOND_FILE )->diag, [], 'identical content' );
};