File: 090-diamond.t

package info (click to toggle)
libclass-method-modifiers-perl 2.15-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 404 kB
  • sloc: perl: 321; makefile: 2
file content (31 lines) | stat: -rw-r--r-- 683 bytes parent folder | download | duplicates (4)
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
use strict;
use warnings;
use Test::More 0.88;
use if $ENV{AUTHOR_TESTING}, 'Test::Warnings';

my $Fourth = Fourth->new();
is($Fourth->orig, "FourthSecondFirst", "Third not called");

BEGIN
{
    package First;
    sub new { bless {}, shift }
    sub orig { "First" }

    package Second;
    use Class::Method::Modifiers;
    our @ISA = ('First');
    around orig => sub { "Second" . shift->() };

    package Third;
    use Class::Method::Modifiers;
    our @ISA = ('First');
    around orig => sub { "Third" . shift->() };

    package Fourth;
    use Class::Method::Modifiers;
    our @ISA = ('Second', 'Third');
    around orig => sub { "Fourth" . shift->() };
}

done_testing;