Commit | Line | Data |
fde8e43f |
1 | use strict; |
2 | # This is automatically generated by author/import-moose-test.pl. |
3 | # DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!! |
4 | use t::lib::MooseCompat; |
5 | use warnings; |
6 | |
7 | use Test::More; |
8 | |
9 | { |
10 | package Thingy; |
11 | use Mouse; |
12 | |
13 | has callback => ( |
14 | traits => ['Code'], |
15 | isa => 'CodeRef', |
16 | required => 1, |
17 | handles => { 'invoke_callback' => 'execute' }, |
18 | ); |
19 | |
20 | has callback_method => ( |
21 | traits => ['Code'], |
22 | isa => 'CodeRef', |
23 | required => 1, |
24 | handles => { 'invoke_method_callback' => 'execute_method' }, |
25 | ); |
26 | |
27 | has multiplier => ( |
28 | traits => ['Code'], |
29 | isa => 'CodeRef', |
30 | required => 1, |
31 | handles => { 'multiply' => 'execute' }, |
32 | ); |
33 | } |
34 | |
35 | my $i = 0; |
36 | my $thingy = Thingy->new( |
37 | callback => sub { ++$i }, |
38 | multiplier => sub { $_[0] * 2 }, |
39 | callback_method => sub { shift->multiply(@_) }, |
40 | ); |
41 | |
42 | is($i, 0); |
43 | $thingy->invoke_callback; |
44 | is($i, 1); |
45 | is($thingy->multiply(3), 6); |
46 | is($thingy->invoke_method_callback(3), 6); |
47 | |
48 | ok(!$thingy->can($_), "Code trait didn't create reader method for $_") |
49 | for qw(callback callback_method multiplier); |
50 | |
51 | done_testing; |