support trigger
[gitmo/Moo.git] / t / accessor-trigger.t
1 use strictures 1;
2 use Test::More;
3
4 my @one_tr;
5
6 {
7   package Foo;
8
9   use Class::Tiny;
10
11   has one => (is => 'rw', trigger => sub { push @one_tr, $_[1] });
12 }
13
14 my $foo = Foo->new;
15
16 ok(!@one_tr, "trigger not fired with no value");
17
18 $foo = Foo->new(one => 1);
19
20 is_deeply(\@one_tr, [ 1 ], "trigger fired on new");
21
22 my $res = $foo->one(2);
23
24 is_deeply(\@one_tr, [ 1, 2 ], "trigger fired on set");
25
26 is($res, 2, "return from set ok");
27
28 is($foo->one, 2, "return from accessor ok");
29
30 is_deeply(\@one_tr, [ 1, 2 ], "trigger not fired for accessor as get");
31
32 done_testing;