X7ROOT File Manager
Current Path:
/usr/share/doc/perl-Sub-Exporter/t
usr
/
share
/
doc
/
perl-Sub-Exporter
/
t
/
📁
..
📄
00-compile.t
(987 B)
📄
000-report-versions-tiny.t
(2.56 KB)
📄
col-init.t
(1.13 KB)
📄
collection.t
(2.83 KB)
📄
expand-group.t
(5.27 KB)
📄
faux-export.t
(2.97 KB)
📄
gen-callable.t
(574 B)
📄
group-generator.t
(3.69 KB)
📄
inherited.t
(613 B)
📄
into-level.t
(3.06 KB)
📁
lib
📄
real-export-groupgen.t
(1.86 KB)
📄
real-export-href.t
(4.12 KB)
📄
real-export-setup.t
(3.6 KB)
📄
util-curry.t
(1.69 KB)
📄
util-currychain.t
(1.68 KB)
📄
util-like.t
(3.03 KB)
📄
util-merge.t
(1.71 KB)
📄
util-mixin.t
(2.73 KB)
📄
util-namemap.t
(568 B)
📄
valid-config.t
(1.27 KB)
Editing: util-currychain.t
#!/usr/bin/perl -T use strict; use warnings; use Test::More tests => 4; BEGIN { use_ok("Sub::Exporter::Util", qw(curry_chain)); } # So, some packages that we'll chain methods through. { package Test::CurryChain::Head; sub new { my ($class, @arg) = @_; bless [ @arg ] => $class; } sub next_obj { shift; return Test::CurryChain::Tail->new(@_); } sub false { return; } sub non_invocant { return 1; } package Test::CurryChain::Tail; sub new { my ($class, @arg) = @_; bless [ @arg ] => $class; } sub rev_guts { return reverse @{shift()}; } } { # Then the generator which could be put into a Sub::Exporter -setup. # This is an optlist. AREF = args; undef = no args; CODE = args generator my $generator = curry_chain( next_obj => [ 1, 2, 3 ], rev_guts => undef, ); my $curried_sub = $generator->('Test::CurryChain::Head'); my @result = $curried_sub->(); is_deeply( \@result, [ 3, 2, 1], "simple curried chain behaves as expected" ); } { # This one will fail, beacuse the second call returns false. my $generator = curry_chain( new => [ 1, 2, 3 ], false => undef, will_fail => undef, ); my $curried_sub = $generator->('Test::CurryChain::Head'); eval { $curried_sub->() }; like($@, qr/can't call will_fail/, "exception on broken chain"); } { # This one will fail, beacuse the second call returns a true non-invocant. my $generator = curry_chain( new => [ 1, 2, 3 ], non_invocant => undef, will_fail => undef, ); my $curried_sub = $generator->('Test::CurryChain::Head'); eval { $curried_sub->() }; like($@, qr/can't call will_fail/, "exception on broken chain"); }
Upload File
Create Folder