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