File: 012_basic_bool.t

package info (click to toggle)
libmoosex-attributehelpers-perl 0.23-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 584 kB
  • ctags: 329
  • sloc: perl: 3,890; makefile: 5
file content (42 lines) | stat: -rw-r--r-- 1,047 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/perl

use strict;
use warnings;

use Test::More tests => 8;
use MooseX::AttributeHelpers;

{
    package Room;
    use Moose;
    has 'is_lit' => (
        metaclass => 'Bool',
        is        => 'rw',
        isa       => 'Bool',
        default   => sub { 0 },
        provides  => {
            set     => 'illuminate',
            unset   => 'darken',
            toggle  => 'flip_switch',
            not     => 'is_dark'
        }
    )
}

my $room = Room->new;
$room->illuminate;
ok $room->is_lit, 'set is_lit to 1 using ->illuminate';
ok !$room->is_dark, 'check if is_dark does the right thing';

$room->darken;
ok !$room->is_lit, 'set is_lit to 0 using ->darken';
ok $room->is_dark, 'check if is_dark does the right thing';

$room->flip_switch;
ok $room->is_lit, 'toggle is_lit back to 1 using ->flip_switch';
ok !$room->is_dark, 'check if is_dark does the right thing';

$room->flip_switch;
ok !$room->is_lit, 'toggle is_lit back to 0 again using ->flip_switch';
ok $room->is_dark, 'check if is_dark does the right thing';