update todo list
[gitmo/Mouse.git] / t / 007-attributes.t
CommitLineData
c3398f5b 1#!/usr/bin/env perl
2use strict;
3use warnings;
4use Test::More tests => 10;
3118622d 5use t::Exception;
c3398f5b 6
7do {
8 package Class;
9 use Mouse;
10
11 has 'x';
12
13 has 'y' => (
14 is => 'ro',
15 );
16
17 has 'z' => (
18 is => 'rw',
19 );
20};
21
22ok(!Class->can('x'), "No accessor is injected if 'is' has no value");
23can_ok('Class', 'y', 'z');
24
25my $object = Class->new;
26
27ok(!$object->can('x'), "No accessor is injected if 'is' has no value");
28can_ok($object, 'y', 'z');
29
30is($object->y, undef);
636c002e 31
32throws_ok {
33 $object->y(10);
34} qr/Cannot assign a value to a read-only accessor/;
35
c3398f5b 36is($object->y, undef);
37
38is($object->z, undef);
39is($object->z(10), 10);
40is($object->z, 10);
41