File: hash_scalar_closure.t

package info (click to toggle)
libclass-makemethods-perl 1.01-7
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,944 kB
  • sloc: perl: 10,495; makefile: 2
file content (49 lines) | stat: -rw-r--r-- 799 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
#!/usr/bin/perl

use Test;
BEGIN { plan tests => 19 }

package X;

use Class::MakeMethods::Template::Hash (
  new      => 'new',
  'scalar --self_closure' => 'a b',
);

package main;

ok( 1 ); #1

my $o = X->new();
my $o2 = X->new();

my $oa = $o->a();
my $ob = $o->b();
my $o2a = $o2->a();

ok( ref( $oa and $ob and $o2a ) ); #2

ok( ! defined &$oa() ); #3
ok( &$oa(123) ); #4
ok( &$oa() == 123 ); #5

ok( ! defined &$o2a() ); #6
ok( &$o2a(911) ); #7
ok( &$o2a() == 911 ); #8
ok( ! defined &$o2a(undef) ); #9

ok( ! defined &$oa(undef) ); #10
ok( ! defined &$oa() ); #11
ok( &$oa(456) ); #12
ok( &$oa() == 456 ); #13

ok( ! defined &$ob() ); #14
ok( &$ob(911) ); #15
ok( &$ob() == 911 ); #16
ok( ! defined &$ob(undef) ); #17

ok( ! defined &$oa (undef) ); #18
ok( ! defined &$oa() ); #19

exit 0;