steals python directors and adapts to perl5
This commit is contained in:
parent
c151a0d69a
commit
0901a3e867
23 changed files with 1741 additions and 5 deletions
48
Examples/test-suite/perl5/director_protected_runme.pl
Normal file
48
Examples/test-suite/perl5/director_protected_runme.pl
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
use strict;
|
||||
use warnings;
|
||||
use Test::More tests => 19;
|
||||
BEGIN { use_ok 'director_protected' }
|
||||
require_ok 'director_protected';
|
||||
|
||||
{
|
||||
package FooBar;
|
||||
use base 'director_protected::Bar';
|
||||
sub ping { 'FooBar::ping();' }
|
||||
}
|
||||
{
|
||||
package FooBar2;
|
||||
use base 'director_protected::Bar';
|
||||
sub ping { 'FooBar2::ping();' }
|
||||
sub pang { 'FooBar2::pang();' }
|
||||
}
|
||||
|
||||
my $b = director_protected::Bar->new();
|
||||
isa_ok $b, 'director_protected::Bar';
|
||||
my $f = $b->create();
|
||||
my $fb = FooBar->new();
|
||||
isa_ok $fb, 'FooBar';
|
||||
my $fb2 = FooBar2->new();
|
||||
isa_ok $fb2, 'FooBar2';
|
||||
|
||||
is $b->used(), "Foo::pang();Bar::pong();Foo::pong();Bar::ping();";
|
||||
eval { $f->used() };
|
||||
like $@, qr/protected member/;
|
||||
is $fb->used(), "Foo::pang();Bar::pong();Foo::pong();FooBar::ping();";
|
||||
is $fb2->used(), "FooBar2::pang();Bar::pong();Foo::pong();FooBar2::ping();";
|
||||
|
||||
is $b->pong(), "Bar::pong();Foo::pong();Bar::ping();";
|
||||
is $f->pong(), "Bar::pong();Foo::pong();Bar::ping();";
|
||||
is $fb->pong(), "Bar::pong();Foo::pong();FooBar::ping();";
|
||||
is $fb2->pong(), "Bar::pong();Foo::pong();FooBar2::ping();";
|
||||
|
||||
eval { $b->ping() };
|
||||
like $@, qr/protected member/;
|
||||
eval { $f->ping () };
|
||||
like $@, qr/protected member/;
|
||||
is $fb->ping(), 'FooBar::ping();';
|
||||
is $fb2->ping(), 'FooBar2::ping();';
|
||||
|
||||
eval { $b->pang() };
|
||||
like $@, qr/protected member/;
|
||||
eval { $f->pang() };
|
||||
like $@, qr/protected member/;
|
||||
Loading…
Add table
Add a link
Reference in a new issue