use Test::More tests => 7; use Moose::Util::TypeConstraints; use MooseX::JobControl::Types; use MooseX::Workers::Job::Command; use MooseX::Workers::Job::Code; use MooseX::Workers::ScheduledJob::Code; my $job = MooseX::Workers::Job::Command->new( command => 'echo "OK"' ); ok( overload::Overloaded($job), '$job is overloaded' ); is( $job->(), "OK\n", '$job returns what we expect' ); my $job2 = MooseX::Workers::Job::Code->new( command => sub { return 'OK' } ); ok( overload::Overloaded($job2), '$job2 is overloaded' ); is( $job2->(), 'OK', '$job2 returns what we expect' ); my $type = find_type_constraint('MooseX::Workers::Job'); my $job3 = $type->coerce( sub { return 'OK' } ); isa_ok( $job3, 'MooseX::Workers::Job::Code' ); ok( overload::Overloaded($job3), '$job3 is overloaded' ); is( $job3->(), 'OK', '$job3 returns what we expect' ); my $job4 = MooseX::Workers::ScheduledJob::Code->new( command => sub { print( join ',', ( scalar localtime, @_, "\n" ) ); }, args => ["one"], freq => "secondly" ); isa_ok( $job3, 'MooseX::Workers::ScheduledJob::Code' ); ok( overload::Overloaded($job3), '$job4 is overloaded' ); is( $job3->(), 'OK', '$job4 returns what we expect' );