in reply to Re^3: A quicker way to have protected and private fields?
in thread A quicker way to have protected and private fields?

To use the class:

my $duck = src::bo::Duck->new(); is( ref($duck), "src::bo::Duck", "A duck object" ); throws_ok { $duck->setFlyBehaviour( src::bo::CannotFly->new() ) } qr/setFlyBehaviour is protected/, "setFlyBehaviour is protected"; throws_ok { $duck->( "FLYBEHAVIOUR", src::bo::CannotFly->new() ) } qr/FLYBEHAVIOUR is protected/, "FLYBEHAVIOUR is protected"; #is( $duck->doFly(), "cannot fly", "the duck cannot fly" ); my $rubber = src::bo::Rubber->new(); is( ref($rubber), "src::bo::Rubber", "A rubber duck object" ); is( $rubber->doFly(), "cannot fly", "the rubber duck cannot fly +" ); is( $rubber->doQuack(), "can sqeek", "the rubber duck sqeeks" ); my $whistle = src::bo::Whistle->new(); is( ref($whistle), "src::bo::Whistle", "A whistle object" ); is( $whistle->doFly(), "cannot fly", "the whistle doesn't fly" + ); is( $whistle->doQuack(), "cannot quack", "the whistle doesn't quac +k" ); throws_ok { $whistle->setQuackBehaviour( src::bo::CanQuack->new() ) } qr/setQuackBehaviour is protected/, "setQuackBehaviour is protected" +; throws_ok { $whistle->( "QUACKBEHAVIOUR", src::bo::CanQuack->new() ) } qr/QUACKBEHAVIOUR is protected/, "QUACKBEHAVIOUR is protected"; $rubber->setColor("green"); is( $rubber->getColor(), "green", "it's a green rubber duck!" );

Ok, you have to imagine the 'use strict, use warnings, use Test::More, use Test::Exception, and all the use src::bo::somethings...

--
if ( 1 ) { $postman->ring() for (1..2); }