import changes from MXAH repo
[gitmo/Moose.git] / t / 070_attribute_helpers / 208_trait_bool.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 8;
7 use MooseX::AttributeHelpers;
8
9 {
10     package Room;
11     use Moose;
12     has 'is_lit' => (
13         traits    => ['MooseX::AttributeHelpers::Trait::Bool'],
14         is        => 'rw',
15         isa       => 'Bool',
16         default   => sub { 0 },
17         handles  => {
18                      illuminate => 'set',
19                      darken => 'unset',
20                      flip_switch => 'toggle',
21                      is_dark => 'not',
22                     },
23         }
24     )
25 }
26
27 my $room = Room->new;
28 $room->illuminate;
29 ok $room->is_lit, 'set is_lit to 1 using ->illuminate';
30 ok !$room->is_dark, 'check if is_dark does the right thing';
31
32 $room->darken;
33 ok !$room->is_lit, 'set is_lit to 0 using ->darken';
34 ok $room->is_dark, 'check if is_dark does the right thing';
35
36 $room->flip_switch;
37 ok $room->is_lit, 'toggle is_lit back to 1 using ->flip_switch';
38 ok !$room->is_dark, 'check if is_dark does the right thing';
39
40 $room->flip_switch;
41 ok !$room->is_lit, 'toggle is_lit back to 0 again using ->flip_switch';
42 ok $room->is_dark, 'check if is_dark does the right thing';
43