Commit | Line | Data |
a16d301e |
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; |