Blame t/mixin.t

Packit 69e8b9
use lib 't', 'lib';
Packit 69e8b9
use strict;
Packit 69e8b9
no strict 'refs';
Packit 69e8b9
use warnings;
Packit 69e8b9
Packit 69e8b9
package A;
Packit 69e8b9
use Spiffy -base;
Packit 69e8b9
field 'foo' => 17;
Packit 69e8b9
Packit 69e8b9
package X;
Packit 69e8b9
sub extra {99}
Packit 69e8b9
Packit 69e8b9
package BB;
Packit 69e8b9
use base 'X';
Packit 69e8b9
sub xxx {42}
Packit 69e8b9
sub yyy {}
Packit 69e8b9
sub _zzz {}
Packit 69e8b9
Packit 69e8b9
package C;
Packit 69e8b9
use base 'A';
Packit 69e8b9
use mixin 'BB';
Packit 69e8b9
Packit 69e8b9
package main;
Packit 69e8b9
use Test::More tests => 10;
Packit 69e8b9
Packit 69e8b9
my $c = C->new;
Packit 69e8b9
ok($c->can('foo'));
Packit 69e8b9
is($c->foo, 17);
Packit 69e8b9
ok($c->can('extra'));
Packit 69e8b9
is($c->extra, 99);
Packit 69e8b9
ok($c->can('xxx'));
Packit 69e8b9
is($c->xxx, 42);
Packit 69e8b9
ok(not $c->can('_zzz'));
Packit 69e8b9
is(@{C::ISA}, 1);
Packit 69e8b9
is(${C::ISA}[0], 'C-BB');
Packit 69e8b9
is(${"C-BB::ISA"}[0], 'A');