3b6532be8918797858fe4427348b4b7975a99634
[gitmo/MooseX-SemiAffordanceAccessor.git] / t / basic.t
1 use strict;
2 use warnings;
3
4 use Test::More tests => 21;
5
6
7 {
8     package Standard;
9
10     use Moose;
11
12     has 'thing' => ( is => 'rw' );
13     has '_private' => ( is => 'rw' );
14 }
15
16 {
17     package SAA;
18
19     use MooseX::SemiAffordanceAccessor;
20     use Moose;
21
22     has 'thing' => ( is => 'rw' );
23     has '_private' => ( is => 'rw' );
24 }
25
26 {
27     package SAA2;
28
29     # Make sure load order doesn't matter
30     use Moose;
31     use MooseX::SemiAffordanceAccessor;
32
33     has 'thing' => ( is => 'rw' );
34     has '_private' => ( is => 'rw' );
35 }
36
37 {
38     package SAA3;
39
40     use Moose;
41     use MooseX::SemiAffordanceAccessor;
42
43     has 'ro' => ( is => 'ro' );
44     has 'thing' => ( is => 'rw', reader => 'get_thing' );
45     has 'thing2' => ( is => 'rw', writer => 'set_it' );
46 }
47
48 {
49     package SAA4;
50
51     use Moose;
52     use MooseX::SemiAffordanceAccessor;
53
54     has bare => ( is => 'bare' );
55 }
56
57
58 ok( Standard->can('thing'), 'Standard->thing() exists' );
59 ok( ! Standard->can('set_thing'), 'Standard->set_thing() does not exist' );
60 ok( Standard->can('_private'), 'Standard->_private() exists' );
61 ok( ! Standard->can('_set_private'), 'Standard->_set_private() does not exist' );
62
63 ok( SAA->can('thing'), 'SAA->thing() exists' );
64 ok( SAA->can('set_thing'), 'SAA->set_thing() exists' );
65 ok( SAA->can('_private'), 'SAA->_private() exists' );
66 ok( SAA->can('_set_private'), 'SAA->_set_private() exists' );
67
68 ok( SAA2->can('thing'), 'SAA2->thing() exists' );
69 ok( SAA2->can('set_thing'), 'SAA2->set_thing() exists' );
70 ok( SAA2->can('_private'), 'SAA2->_private() exists' );
71 ok( SAA2->can('_set_private'), 'SAA2->_set_private() exists' );
72
73 ok( SAA3->can('ro'), 'SAA3->ro exists' );
74 ok( ! SAA3->can('set_ro'), 'SAA3->set_ro does not exist' );
75 ok( SAA3->can('thing'), 'SAA3->thing exists' );
76 ok( ! SAA3->can('set_thing'), 'SAA3->set_thing does not exist' );
77 ok( SAA3->can('thing2'), 'SAA3->thing2 exists' );
78 ok( ! SAA3->can('set_thing2'), 'SAA3->set_thing2 does not exist' );
79 ok( SAA3->can('set_it'), 'SAA3->set_it does exist' );
80
81 ok( ! SAA4->can('bare'), 'SAA4->bare does not exist' );
82 ok( ! SAA4->can('set_bare'), 'SAA4->set_bare does not exist' );