summaryrefslogtreecommitdiff
path: root/cpan/NEXT/t/actual.t
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2009-09-26 15:41:57 +0100
committerNicholas Clark <nick@ccl4.org>2009-09-26 17:51:16 +0100
commitf436ffb1e59ac8d19c829d5f3ba1602185acbbf1 (patch)
treedc201b5738f8f684185dab2f307276309bef3d66 /cpan/NEXT/t/actual.t
parent23b39ebbb48b8ba9326a592cb6d6945d531bd366 (diff)
downloadperl-f436ffb1e59ac8d19c829d5f3ba1602185acbbf1.tar.gz
Move NEXT from ext/ to cpan/
Diffstat (limited to 'cpan/NEXT/t/actual.t')
-rw-r--r--cpan/NEXT/t/actual.t44
1 files changed, 44 insertions, 0 deletions
diff --git a/cpan/NEXT/t/actual.t b/cpan/NEXT/t/actual.t
new file mode 100644
index 0000000000..a3a724ae4a
--- /dev/null
+++ b/cpan/NEXT/t/actual.t
@@ -0,0 +1,44 @@
+use Test::More tests => 10;
+
+BEGIN {
+ if ($ENV{PERL_CORE}) {
+ chdir('t') if -d 't';
+ @INC = qw(../lib);
+ }
+}
+
+BEGIN { use_ok('NEXT') };
+my $order = 0;
+
+package A;
+@ISA = qw/B C D/;
+
+sub test { ++$order; ::ok($order==1,"test A"); $_[0]->NEXT::ACTUAL::test;}
+
+package B;
+@ISA = qw/D C/;
+sub test { ++$order; ::ok($order==2,"test B"); $_[0]->NEXT::ACTUAL::test;}
+
+package C;
+@ISA = qw/D/;
+sub test {
+ ++$order; ::ok($order==4||$order==6,"test C");
+ $_[0]->NEXT::ACTUAL::test;
+}
+
+package D;
+
+sub test {
+ ++$order; ::ok($order==3||$order==5||$order==7||$order==8,"test D");
+ $_[0]->NEXT::ACTUAL::test;
+}
+
+package main;
+
+my $foo = {};
+
+bless($foo,"A");
+
+eval{ $foo->test }
+ ? fail("Didn't die on missing ancestor")
+ : pass("Correctly dies after full traversal");