File: 01AUTOLOAD02forbiddenmethods.t

package info (click to toggle)
libpod-wsdl-perl 0.063-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, trixie
  • size: 316 kB
  • sloc: perl: 1,808; xml: 44; makefile: 2
file content (61 lines) | stat: -rw-r--r-- 1,221 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/perl -w
package Foo;
use Pod::WSDL::AUTOLOAD;

our @ISA = qw/Pod::WSDL::AUTOLOAD/;

our %FORBIDDEN_METHODS = (
	bar     => {get => 0, set => 0},
	boerk   => {get => 0, set => 1},
	bloerch => {get => 1, set => 0},
	boerps  => {get => 1, set => 1},
);

sub new {
	my $pgk = shift;
	bless {
		_bar => 'blah',
	}, $pgk
}

sub miaow {
	my $me = shift;
	$me->bar;
	$me->bar('br');
}

1;

package main;
use Test::More tests => 9;
no warnings;

my $foo = Foo->new;

eval {$foo->bar;};
ok($@, 'Both forbidden: Using getter croaks');

eval {$foo->bar('br');};
ok($@, 'Both forbidden: Using setter croaks');

eval {$foo->boerk;};
ok($@ == undef, 'Setter forbidden: Using getter does not croak');

eval {$foo->boerk('br');};
ok($@, 'Setter forbidden: Using setter croaks');

eval {$foo->bloerch;};
ok($@, 'Getter forbidden: Using getter croaks');

eval {$foo->bloerch('br');};
ok($@ == undef, 'Getter forbidden: Using setter does not croak');

eval {$foo->boeps;};
ok($@ == undef, 'Nothing forbidden: Using getter does not croak');

eval {$foo->boerps('br');};
ok($@ == undef, 'Nothing forbidden: Using setter does not croak');

eval{$foo->miaow};
ok($@ == undef, 'Calling accessors from within package does not croak');