1#!/usr/bin/perl -w 2package Foo; 3use Pod::WSDL::AUTOLOAD; 4 5our @ISA = qw/Pod::WSDL::AUTOLOAD/; 6 7our %FORBIDDEN_METHODS = ( 8 bar => {get => 0, set => 0}, 9 boerk => {get => 0, set => 1}, 10 bloerch => {get => 1, set => 0}, 11 boerps => {get => 1, set => 1}, 12); 13 14sub new { 15 my $pgk = shift; 16 bless { 17 _bar => 'blah', 18 }, $pgk 19} 20 21sub miaow { 22 my $me = shift; 23 $me->bar; 24 $me->bar('br'); 25} 26 271; 28 29package main; 30use Test::More tests => 9; 31no warnings; 32 33my $foo = Foo->new; 34 35eval {$foo->bar;}; 36ok($@, 'Both forbidden: Using getter croaks'); 37 38eval {$foo->bar('br');}; 39ok($@, 'Both forbidden: Using setter croaks'); 40 41eval {$foo->boerk;}; 42ok($@ == undef, 'Setter forbidden: Using getter does not croak'); 43 44eval {$foo->boerk('br');}; 45ok($@, 'Setter forbidden: Using setter croaks'); 46 47eval {$foo->bloerch;}; 48ok($@, 'Getter forbidden: Using getter croaks'); 49 50eval {$foo->bloerch('br');}; 51ok($@ == undef, 'Getter forbidden: Using setter does not croak'); 52 53eval {$foo->boeps;}; 54ok($@ == undef, 'Nothing forbidden: Using getter does not croak'); 55 56eval {$foo->boerps('br');}; 57ok($@ == undef, 'Nothing forbidden: Using setter does not croak'); 58 59eval{$foo->miaow}; 60ok($@ == undef, 'Calling accessors from within package does not croak'); 61 62