File: 101-immutable-default.t

package info (click to toggle)
libmouse-perl 2.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,156 kB
  • sloc: perl: 14,569; ansic: 218; makefile: 8
file content (27 lines) | stat: -rw-r--r-- 607 bytes parent folder | download | duplicates (8)
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
use strict;
use warnings;

use Test::More tests => 5;
use Test::Exception;

{
    package Foo;
    use Mouse;

    #two checks because the inlined methods are different when
    #there is a TC present.
    has 'foos' => ( is => 'rw', default => 'DEFAULT' );
    has 'bars' => ( is => 'rw', default => 300100 );
    has 'bazs' => ( is => 'rw', default => sub { +{} } );

}

lives_ok { Foo->meta->make_immutable }
    'Immutable meta with single BUILD';

my $f = Foo->new;
isa_ok $f, 'Foo';
is $f->foos, 'DEFAULT', 'str default';
is $f->bars, 300100, 'int default';
is ref($f->bazs), 'HASH', 'code default';