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