fafb47be296a03b48a8a0f516b154de88c3b04b2
[gitmo/MooseX-HasDefaults.git] / t / 001-ro.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4 use Test::More tests => 7;
5 use Test::Exception;
6
7 do {
8     package Person;
9     use Moose;
10     use MooseX::IsDefaults::RO;
11
12     has name => (
13         isa => 'Str',
14     );
15
16     has birth_year => (
17         isa => 'Int',
18     );
19
20     has favorite_language => (
21         is      => 'rw',
22         isa     => 'Str',
23         default => 'Perl',
24     );
25 };
26
27 can_ok(Person => qw(name birth_year favorite_language));
28
29 my $whacko = Person->new(name => 'Stevan', birth_year => 1924);
30 is($whacko->name, 'Stevan');
31 is($whacko->birth_year, 1924);
32 is($whacko->favorite_language, 'Perl');
33
34 throws_ok {
35     $whacko->name('Stevan Little');
36 } qr/read-only accessor/;
37
38 throws_ok {
39     $whacko->birth_year(1922);
40 } qr/read-only accessor/;
41
42 $whacko->favorite_language('C#'); # he's dead to us now..
43 is($whacko->favorite_language, 'C#');
44