blob: d171d3fa7a1e039a78a4cb998b3928951003ff43 (
plain)
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
|
use strict;
use warnings;
package Test::Deep::All;
use Test::Deep::Cmp;
use overload
'&' => \&add,
fallback => 1,
;
sub init
{
my $self = shift;
my @list = map {Test::Deep::wrap($_)} @_;
$self->{val} = \@list;
}
sub descend
{
my $self = shift;
my $got = shift;
my $data = $self->data;
my $index = 1;
foreach my $cmp (@{$self->{val}})
{
$data->{index} = $index;
$index++;
next if Test::Deep::descend($got, $cmp);
return 0
}
return 1;
}
sub render_stack
{
my $self = shift;
my $var = shift;
my $data = shift;
my $max = @{$self->{val}};
return "(Part $data->{index} of $max in $var)";
}
sub add
{
my $self = shift;
my $expect = shift;
push(@{$self->{val}}, Test::Deep::wrap($expect));
return $self;
}
1;
|