Changelogging
[gitmo/Mouse.git] / t / 070_native_traits / 209_trait_code.t
CommitLineData
fde8e43f 1use strict;
2# This is automatically generated by author/import-moose-test.pl.
3# DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!!
4use t::lib::MooseCompat;
5use warnings;
6
7use 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
35my $i = 0;
36my $thingy = Thingy->new(
37 callback => sub { ++$i },
38 multiplier => sub { $_[0] * 2 },
39 callback_method => sub { shift->multiply(@_) },
40);
41
42is($i, 0);
43$thingy->invoke_callback;
44is($i, 1);
45is($thingy->multiply(3), 6);
46is($thingy->invoke_method_callback(3), 6);
47
48ok(!$thingy->can($_), "Code trait didn't create reader method for $_")
49 for qw(callback callback_method multiplier);
50
51done_testing;