]> git.vpit.fr Git - perl/modules/with.git/blobdiff - t/14-defer.t
Importing with-0.02.tar.gz
[perl/modules/with.git] / t / 14-defer.t
diff --git a/t/14-defer.t b/t/14-defer.t
new file mode 100644 (file)
index 0000000..efbca6d
--- /dev/null
@@ -0,0 +1,36 @@
+#!perl -T
+
+use strict;
+use warnings;
+
+use Test::More tests => 8;
+
+use with \bless {}, 'with::Mock';
+
+sub shift { }
+sub with::Mock::pop { }
+sub durrr () { 79 }
+sub dongs () { 53 }
+sub with::Mock::dongs { CORE::shift; $_[0] + $_[1] }
+sub hlagh { 2 * $_[0] + $_[1] }
+sub with::Mock::boner { CORE::shift; $_[0] + 2 * $_[1] }
+
+my @a;
+@a = 1;
+push @a, 2;         # with::corewrap, defaulting to CORE
+is $a[1], 2, 'CORE::push';
+shift @a;           # with::corewrap, function in caller namespace
+is $a[1], 2, 'main::shift';
+pop @a;             # with::corewrap, method call
+is $a[1], 2, 'with::Mock::pop';
+my $x = durrr @a;   # with::subwrap, function in caller namespace
+is $x, 79, 'main::durrr';
+my $y = dongs @a;   # with::subwrap, method call
+is $y, 3, 'with::Mock::dongs';
+my $z = hlagh @a;   # with::defer, function in caller namespace
+is $z, 4, 'main::hlagh';
+my $t = boner @a;   # with::defer, method call
+is $t, 5, 'with::Mock::boner';
+eval { zogzog @a }; # with::defer, no such fonction
+like $@, qr/Undefined\s+subroutine/, 'no zogzog';
+