File: 03-class.t

package info (click to toggle)
libclass-accessor-classy-perl 0.9.1-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 116 kB
  • sloc: perl: 818; makefile: 2
file content (66 lines) | stat: -rwxr-xr-x 1,433 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
62
63
64
65
66
#!/usr/bin/perl

use warnings;
use strict;

use Test::More 'no_plan';

BEGIN {
  eval {require Class::Accessor::Classy};
  ok(!$@);
}

{
  package Foo;
  use Class::Accessor::Classy;
  ro bip => 'bop';
  ro_c fee => 'FEE';
  ro_c fie => 'FIE';
  ro_c foe => 'FOE';
  rw_c foo => 'FOO';
  rw_c bar => 'BAR';
  rw_c baz => 'BAZ';
  no  Class::Accessor::Classy;
}
ok(Foo->isa('Foo::--accessors'), 'isa Foo::--accessors');
can_ok('Foo',
  map({$_} qw(fee fie foe foo bar baz)),
  map({'set_' . $_} qw(foo bar baz))
);
is(Foo->$_, uc($_), "look $_") for(qw(fee fie foe foo bar baz));
for my $n (qw(foo bar baz)) {
  my $setter = 'set_' . $n;
  Foo->$setter($n);
  is(Foo->$n, $n, "setter $n");
  Foo->$setter(uc($n));
  is(Foo->$n, uc($n), "setter $n");
}

{
  package Deal;
  use Class::Accessor::Classy;
  rs_c g => \ (my $set_g) => 'g';
  my $set_h = rs_c 'h' => 'h';
  my ($set_i, $set_j) = rs_c i => 'i', j => 'j';
  no  Class::Accessor::Classy;
  package main;
  is($set_g, '--set_g');
  is($set_h, '--set_h');
  is($set_i, '--set_i');
  is($set_j, '--set_j');
  can_ok('Deal',
    map({$_, '--set_' . $_} qw(g h i j))
  );
  is(Deal->$_, $_, "look $_") for(qw(g h i j));
  Deal->$set_g('G');
  Deal->$set_h('H');
  Deal->$set_j('J');
  Deal->$set_i('I');
  is($set_g, '--set_g');
  is($set_h, '--set_h');
  is($set_i, '--set_i');
  is($set_j, '--set_j');
  is(Deal->$_, uc($_), "set $_") for(qw(g h i j));
}

# vi:ts=2:sw=2:et:sta