7 package TestClientClass;
9 use namespace::clean -except => 'meta';
15 package TestBadClientClass;
17 use namespace::clean -except => 'meta';
26 use namespace::clean -except => 'meta';
31 use Scalar::Util qw/ blessed /;
32 die $_[0] . "Does not have a ->consume method" unless blessed($_[0]) && $_[0]->can('consume'); }),
35 coerce => quote_sub(q{
37 my $class = delete($stuff{class});
51 package TestMooseClass;
57 foreach my $name (qw/ TestMooClass TestMooseClass /) {
58 my $i = $name->new(output_to => TestClientClass->new());
59 ok $i->output_to->can('consume');
60 $i = $name->new(output_to => { class => 'TestClientClass' });
61 ok $i->output_to->can('consume');
64 foreach my $name (qw/ TestMooClass TestMooseClass /) {
65 ok !exception { TestBadClientClass->new };
66 ok exception { $name->new(output_to => TestBadClientClass->new()) };
67 ok exception { $name->new(output_to => { class => 'TestBadClientClass' }) };