File: 00-base.t

package info (click to toggle)
libclass-accessor-lite-perl 0.08-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 208 kB
  • sloc: perl: 2,284; makefile: 2
file content (34 lines) | stat: -rw-r--r-- 816 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
package K;

use strict;
use warnings;

use Test::More tests => 14;

use_ok('Class::Accessor::Lite');

Class::Accessor::Lite->mk_accessors(qw(foo bar));
Class::Accessor::Lite->mk_ro_accessors(qw(ro));
Class::Accessor::Lite->mk_wo_accessors(qw(wo));

ok(! $@, 'call mk_accessors');

my $k = bless { foo => 1, bar => 2, ro => 3, wo => 4 }, 'K';
is($k->foo, 1);
is($k->foo(2), 2);
is($k->foo, 2);
is_deeply($k->foo(2, 3), [ 2, 3 ]);
is_deeply($k->foo, [ 2, 3 ]);
is($k->bar, 2);
is($k->ro, 3);
eval { $k->ro(99) };
my $e = $@;
like $e, qr{'K' cannot access the value of 'ro' on objects of class 'K' at t/00-base.t line };
$k->wo(801);
is $k->{wo}, '801';
is_deeply($k->wo(2, 3), [ 2, 3 ]);
eval { $k->wo() };
$e = $@;
ok $e;
like $e, qr{'K' cannot alter the value of 'wo' on objects of class 'K' at t/00-base.t line };