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